2010-11-20 4 views
2

Je suis en train de créer des services REST à l'aide de Jersey (builtin) sur Glassfish. J'ai installé GlassFish Server Open Source Edition 3.0.1 (build 22). Ceci est mon web.xml:Glassfish ne peut pas trouver/instancier Jersey WebApplicationProviderImpl

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <servlet> 
     <servlet-name>javax.ws.rs.core.Application</servlet-name> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>javax.ws.rs.core.Application</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

Cependant, lorsque je tente de déployer la guerre, je reçois ceci:

java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [com.sun.jersey.server.impl.container.WebApplicationProviderImpl], because it has not yet been started, or was already stopped 
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1367) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at com.sun.jersey.core.reflection.ReflectionHelper.classForNameWithException(ReflectionHelper.java:236) 
    at com.sun.jersey.spi.service.ServiceFinder$LazyObjectIterator.hasNext(ServiceFinder.java:851) 

Que puis-je faire? Il ressemble à un problème de classpath, mais cela est plus profond GlassFish.

J'ai aussi essayé de mettre à jour le composant Jersey dans Glassfish à 1,4 comme décrit here, mais aucun changement.

Répondre

-1

J'ai trouvé la cause de le problème moi-même. Apparemment, Glassfish devient profondément confus si vous déployez un fichier JAR comme une application Web, même si vous sélectionnez explicitement le type. La seule chose que je devais faire est de changer le suffixe du fichier WAR, et cela a fonctionné (a une autre erreur au début, mais qui était beaucoup plus facile de trouver une solution pour).

+2

Je ne pense pas le type de fichier a quelque chose à voir avec ça. Je reçois exactement la même erreur avec un fichier WAR. J'ai déposé ce rapport de bogue: http://java.net/jira/browse/GLASSFISH-18482 – Gili

1

Découvrez l'exemple suivant de mon blog, il peut aider:

Mon web.xml est:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <servlet> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Jersey Web Application</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
    <persistence-context-ref> 
     <persistence-context-ref-name>persistence/em</persistence-context-ref-name> 
     <persistence-unit-name>CustomerService</persistence-unit-name> 
    </persistence-context-ref> 
</web-app> 
+0

Merci - mais la seule chose qui change est la classe à laquelle le message d'erreur se plaint: "WEB9031: WebappClassLoader impossible de charger la ressource [com.sun.jersey.spi.container.servlet.ServletContainer]" –

Questions connexes