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
demandé sur idmean 2013-12-26 16:06:24

4 réponses

ma solution:

  1. 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
  2. ajouter dans le WEB-Inf / lib de mon projet uniquement les bibliothèques qui sont sous /lib dossier du fichier zip De Jersey
  3. 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>

com.myservice.services est le paquet où j'ai mes services

Merci pour vos commentaires!!

9
répondu jjmartinez 2013-12-28 12:28:12

ç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.

0
répondu NicholasKarl 2013-12-26 19:56:49

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.

0
répondu NicholasKarl 2013-12-29 00:41:37

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

-1
répondu siddmuk2005 2014-08-04 10:28:26