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

Eclipse Java Discussion :

Déploiement d'un Web Service dans Eclipse


Sujet :

Eclipse Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut Déploiement d'un Web Service dans Eclipse
    Bonjour,

    J'essaye de déployer un web service à partir de Eclipse, en utilisant l'assistant et je suis confronté à l'erreur suivante :
    java.lang.NoClassDefFoundError: org/apache/axis/client/AdminClient
    Exception in thread "main"
    Je travaille sur l'exemple du tutoriel de jmdoudou dans les cours et tutoriels pour apprendre Java : http://java.developpez.com/cours/, et je suis bloquée dans la partie 26.1.6, sachant que j'ai suivi méticuleusement les étapes que j'ai même refait 3 fois.

    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    J'utilise :
    Eclipse JEE Europa fall 2 win32
    Tomcat 5.5
    Axis 1.4
    Jdk1.5.0_07

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Essaies de faire ceci:
    Clic droit sur le projet, properties, J2EE Module Dependancies.
    Dans la fenêtre à droite, vérifies si le(s) jar(s) d'Axis sont bien cochés.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Clic droit sur le projet, properties, J2EE Module Dependancies.
    Dans la fenêtre à droite, vérifies si le(s) jar(s) d'Axis sont bien cochés.
    La bibliothèque Axis créée auparavant n'était pas cochée, mais même après l'avoir fait, j'ai actualisé, run deploy Calculer... j'ai toujours la même erreur !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    Je n'ai pas compris le "SET CLASSPATH" qu'est ce qu'il fait au juste ?
    Parce que le fichier lib concerné (C:\TP5WS\workspace\testWS\WebContent\WEB-INF\lib) est vide, les jar se trouvent dans C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib

    Merci d'avance.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Il faut copier les librairies dont tu as besoin dans le dossier "WEB-INF/lib" de ton projet Eclipse (quitte à avoir des doublons de ces fichiers sur ton disque dur).

    Effectivement, si tu te contentes de les ajouter au classpath de ton application sous Eclipse, il ne détectera pas l'erreur. Mais lors du déploiement réel de l'application, le serveur J2EE n'aura pas connaissance de ton classpath Eclipse, mais uniquement des librairies du répertoire "WEB-INF/lib" (c'est une convention)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,

    Citation Envoyé par CyberChouan Voir le message
    Il faut copier les librairies dont tu as besoin dans le dossier "WEB-INF/lib" de ton projet Eclipse (quitte à avoir des doublons de ces fichiers sur ton disque dur).

    Effectivement, si tu te contentes de les ajouter au classpath de ton application sous Eclipse, il ne détectera pas l'erreur. Mais lors du déploiement réel de l'application, le serveur J2EE n'aura pas connaissance de ton classpath Eclipse, mais uniquement des librairies du répertoire "WEB-INF/lib" (c'est une convention)
    Ce n'est plus nécessaire depuis Eclipse 3.3 car la gestion du classpath d'une application web a été remanié. Maintenant, en stade de développement et de tests, Eclipse ne copie plus les jars dans WEB-INF/lib du projet, qui est toujours vide, mais utilise plutôt le même mécanisme des applications Java ordinaires. Pour s'assurer qu'un jar est disponible en étant sous le serveur (toujours dans Eclipse), on le coche dans la fenêtre "J2EE Module dependencies".

    Ce n'est que lors de l'export du war qu'Eclipse copie les jars dans WEB-INF/lib.

    @papillange: Tu es sûr d'avoir redémarré Tomcat après avoir coché le jar d'Axis (ainsi que ses dépendances) ?

  7. #7
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    AdminClient n'est pas vraiment une classe utilisée par le serveur d'Axis.

    Pour déployer un service web dans Axis, il faut copier les fichiers .class dans la webapp. Ensuite, on invoque le service web AdminService pour déployer le nouveau service web. Comme ils sont gentils, un client java est fourni pour invoquer AdminService, il s'agit de ... AdminClient !

    Ce que je veux dire, c'est que l'erreur ne vient pas du serveur. Elle vient de la tâche ant d'Eclipse qui, après avoir copié/déplacé les fichiers, essaie de déployer le service en exécutant "java org.apache.axis.client.AdminClient file.wsdd". Or, elle ne trouve pas la classe.

    En mode console, on ajoute bêtement les jars d'Axis au CLASSPATH, donc ça ne pose pas de problème. Par contre pour Eclipse c'est une autre paire de manches (cela dépend surtout du plugin utilisé).
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    @djomos : oui j'ai redémarré Tomcat mais j'ai toujours la même erreur..

    @Xavlours : Je n'ai rien compris, et sur ce considérez que je ne suis pas débutante, mais que je ne connais rien à Java ou Eclipse. Donc je ne vois pas ce que vous me conseillez de faire.

    Je crois que l'erreur vient du fait de ne pas retrouver la classe AdminClient, que j'ai pensé à télécharger, mais je ne sais pas si c'est ça qui ne va pas... Où suis-je censée la mettre ?

    Merci

  9. #9
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bon, je viens de lire le tutoriel que tu as suivi ... Et j'ai trouvé . Si tu es curieux, je te recommande de commencer par ce tutoriel de Axis sans Eclipse.

    Ce que je disais précédemment, c'est juste que ton serveur est bien configuré (comme l'a dit djo.mos, Eclipse le gère très bien ), mais c'est ton compilateur/déployeur adminclient.bat qui est mal écrit.

    Dans ton fichier adminclient.bat, la commande set classpath est effectivement très importante (cf FAQ). Il faut remplacer les éléments du style ..\lib\axis.jar par le véritable chemin du fichier axis.jar (idem pour tous les autres fichiers jar). En effet, si le CLASSPATH est mal positionné, java ne peut pas trouver la classe AdminClient.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    Ce que vous dites résout effectivement le problème mais partiellement parce qu'après avoir mis ce script dans adminclient.bat :
    @echo off

    set CLASSPATH=.
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\axis.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\axis-ant.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\commons-discovery-0.2.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\commons-logging-1.0.4.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\jaxrpc.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\log4j-1.2.8.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\saaj.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\axis-1_4\webapps\axis\WEB-INF\lib\wsdl4j-1.5.1.jar
    set CLASSPATH=%CLASSPATH%;C:\TP5WS\workspace\testWS\WebContent\WEB-INF\classes\testPG\Calculer.class

    java org.apache.axis.client.AdminClient -s /testWS/services/AdminService %1%.wsdd
    certes, je n'ai plus l'erreur, mais le but principal n'est pas atteint. Quand j'ouvre l'url http://localhost:8080/testWS/services, le service web CalculerWS n'apparaît pas dans la liste des services...

  11. #11
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Ah, mais c'est déjà mieux. Essaie d'exécuter le .bat dans une invite de commandes. S'il y a un message d'erreur, tu pourras le voir.

    (conseil : copie les fichier adminclient.bat et le fichier .wsdd dans le même répertoire)
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    J'ai suivi le même tutoriel et les mêmes étapes mais à la fin, quand j'execute le adminclient.bat, il me donne le message suivant :
    - Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
    Processing file deployCalculer.wsdd
    Exception: deployCalculer.wsdd (Le fichier spécifié est introuvable)
    Sauriez-vous m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    J'ai réussi le déploiement du WebService:

    1) Intialiser le CLASSPATH en une seule ligne:
    set CLASSPATH=.;..\lib\axis.jar;..\lib\axis-ant.jar;..\lib\commons-discovery-0.2.jar;..\lib\commons-logging-1.0.4.jar;..\lib\jaxrpc.jar;..\lib\log4j-1.2.8.jar;..\lib\saaj.jar;..\lib\wsdl4j-1.5.1.jar
    2) Remplacer:
    java org.apache.axis.client.AdminClient -s /testWS/services/AdminService %1%.wsdd
    par:
    java org.apache.axis.client.AdminClient -s /testWS/services/AdminService Calculate.wsdd

  14. #14
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Salut jongua,

    Où puis-je trouver le fichier Calculate.wsdd?
    J'ai eu le même problème que vous et je ne peux pas déployer mon web service.

    Merci d'avance.

Discussions similaires

  1. Web services sous eclipse et déploiement sous Oracle SOA
    Par amalamal dans le forum Services Web
    Réponses: 0
    Dernier message: 26/02/2009, 15h42
  2. Erreur dans le déploiement d'un web service avec axis
    Par hacksi dans le forum Services Web
    Réponses: 1
    Dernier message: 18/02/2008, 13h56
  3. Réponses: 2
    Dernier message: 11/02/2008, 18h29
  4. Le déploiement du service dans Eclipse
    Par prince_antonio dans le forum Services Web
    Réponses: 8
    Dernier message: 07/08/2007, 12h02
  5. Créer un client Web Service sous Eclipse et Windows
    Par Lebas dans le forum Services Web
    Réponses: 2
    Dernier message: 28/08/2006, 10h53

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