Services de Jersey avec Tomcat et Eclipse
je développe un service de repos avec Jersey 2.0 (j'ai téléchargé à partir de http://repo1.maven.org/maven2/org/glassfish/jersey/bundles/jaxrs-ri/2.5/jaxrs-ri-2.5.zip ) et J'utilise Tomcat 7.0.47. J'exécute Tomcat à partir D'Eclipse et ma machine est un Mac.
j'utilise L'outil Eclipse pour générer une guerre et déployer le service.
C'est ma toile.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MyServices</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.service.services.Services</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
j'inclus tous les pots de Jersey dans WEB-INF/ lib, sauf javax.servlet-api-3.0.1.jar
qu'il est dans Apache / lib
Quand je me déploie dans Tomcat, il montre une erreur très étrange causée par:
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
... 70 more
4 réponses
ma solution:
- ajouter dans Tomcat / lib toutes les bibliothèques que vous téléchargez à partir de Jersey et
sont inclus dans le dossier
/ext
du maillot .zip - ajouter dans le WEB-Inf / lib de mon projet uniquement les bibliothèques qui sont sous
/lib
dossier du fichier zip De Jersey - ajouter dans Web-Inf / lib de mon projet
javax.ws.rs-api-2.jar
que vous pouvez trouver dans/api
dossier de Jersey
avec ceci, Je n'ai pas de problèmes pour courir Tomcat avec Jersey.
Et voici ma toile.xml pour Jersey 2.0
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MyRESTServices</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.myservice.services</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
où com.myservice.services
est le paquet où j'ai mes services
Merci pour vos commentaires!!
ça marche pour moi sur un PC. Avez-vous fait du projet eclipse un projet maven? Si tu fais ça, tu peux utiliser org.glassfish.Jersey.bundles jaxrs-ri version 2.5 (ou n'importe laquelle) comme une dépendance dans votre pom et puis quand vous exécutez->maven-install à partir d'eclipse il construira un fichier de guerre avec toutes les dépendances nécessaires.
ajouter Jersey à un projet Eclipse sans maven est simple: cliquez sur Propriétés pour le projet, allez sur le chemin de construction Java. Cliquez sur Add Library à gauche, sélectionnez user library. Après avoir cliqué sur suivant, vous verrez utilisateur "bibliothèques" dans le coin supérieur droit. Cliquez qui. Cliquez sur nouveau. Ajouter un nom: jaxrs-ri-2.5 par exemple. Cliquez sur Ajouter des bocaux externes, et ajoutez les bocaux dans les dossiers api, lib et ext. Vous avez terminé. Cela les inclura probablement aussi dans tout fichier de guerre que vous ferez avec eclipse.
travaillait pour moi.
va avec jdk1.7.0_04 et installez apache-tomcat-7.0.55 et définissez la variable d'environnement pour ce paramètre et mettez eclipse pour same pour la compilation et l'exécution. alors tout ira bien pour Jax-RS-2.1