IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Problème inclusion jar lib dans programme web ( tomcat )


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut Problème inclusion jar lib dans programme web ( tomcat )
    bonjour,

    Voici ma problématique.
    J'ai 2 programme java , un qui est "autonome" et qui fait une sorte de mettering sur différent API. Ce programme contiens tous un écosystème de class pour faire différent actions et traitements.

    Puis mon deuxième programme est un web-services qui vas utiliser quelque action de mon programme autonome.

    Pour éviter de rendre le développement trop long j'ai importé comme librairie le .jar de mon programme autonome dans le path de mon programme web.

    Pour utiliser tous son écosystème de class.

    Cependant il n'a pas l'aire de trouvé les class pourtant eclipse me les importent automatiquement et ne m'affiche pas d'erreur.

    Par exemple pour les libraries JSON :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import oms.lib.json.JSONException;
    import oms.lib.json.JSONObject;
    voici l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    cause mère
     
    java.lang.NoClassDefFoundError: oms/lib/json/JSONException
    	java.lang.Class.getDeclaredConstructors0(Native Method)
    	java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    	java.lang.Class.getConstructor0(Unknown Source)
    	java.lang.Class.newInstance0(Unknown Source)
    	java.lang.Class.newInstance(Unknown Source)
    	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	java.lang.Thread.run(Unknown Source)
    cause mère
     
    java.lang.ClassNotFoundException: oms.lib.json.JSONException
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    	java.lang.Class.getDeclaredConstructors0(Native Method)
    	java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    	java.lang.Class.getConstructor0(Unknown Source)
    	java.lang.Class.newInstance0(Unknown Source)
    	java.lang.Class.newInstance(Unknown Source)
    	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    	java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	java.lang.Thread.run(Unknown Source)
    Voici le Manifest qui se trouve dans mon .jar ( programme autonome )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Manifest-Version: 1.0
    Rsrc-Class-Path: ./ httpclient-cache-4.1.1.jar imap.jar pop3.jar commo
     ns-codec-1.4.jar httpcore-4.1.jar mailapi.jar smtp.jar mail.jar commo
     ns-logging-1.1.1.jar dsn.jar httpmime-4.1.1.jar httpclient-4.1.1.jar
    Class-Path: .
    Rsrc-Main-Class: oms.exec.run
    Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
    J'avoue que je calle un peut.
    Merci d'avance pour votre aide.

    Vinc.

  2. #2
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 117
    Points : 66
    Points
    66
    Par défaut
    il semble que mon problème est similaire à celui traité dans ce topic
    http://www.developpez.net/forums/d56...e-lib-externe/

    Cependant aucune réponses final na été apporté au problème

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2011
    Messages : 214
    Points : 338
    Points
    338
    Par défaut
    Le chargement des classes dans Tomcat (ou tout autre coteneur) ne fonctionne pas tout à fait de la même façon que lorsqu'on lance une application classique avec une méthode main.

    Tu peux trouver plus de détails ici : http://tomcat.apache.org/tomcat-6.0-...der-howto.html

    Par contre en utilisant Eclipse pour lancer Tomcat et déployer l'application, Eclipse "adapte" le classloader pour aussi pointer sur les ressources de son projet. D'après mon expérience ça pose parfois de petits soucis.
    Dans ce cas je te conseille d'essayer de d'abord déployer ton webservice sur Tomcat lancé "à la main" (avec ses scripts) pour voir si le problème ne vient pas de la configuration du projet d'Eclipse.

Discussions similaires

  1. Problème avec wsh.network dans app web
    Par viberts dans le forum ASP
    Réponses: 0
    Dernier message: 14/12/2010, 18h27
  2. Réponses: 4
    Dernier message: 07/06/2009, 13h35
  3. inclusion de lib dans les projets
    Par stachus dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 22/11/2007, 11h56
  4. Réponses: 1
    Dernier message: 22/08/2007, 15h48
  5. Réponses: 2
    Dernier message: 26/05/2006, 00h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo