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

Services Web Java Discussion :

[JAX-WS][wsgen] Pb d'imports avec wsgen


Sujet :

Services Web Java

  1. #1
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut [JAX-WS][wsgen] Pb d'imports avec wsgen
    Bonjour !

    J'ai construit un webservice avec des annotations.
    Mes sources sont dans WEB-INF/src (projet tomcat)
    D'abord un tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	@WebMethod
    	public @WebResult(name = "testWebService")
    	String testWebService(@WebParam(name = "param")
    	String param) throws ApiException {
    		return "Test WebService " + param;
    	}
    Via une console (sous linux) lance ma commande wsgen sur le répertoire des binaires, WEB-INF/classes
    J'ai bien la génération d'un TestWebService.java et d'un TestWebServiceResponse.java.

    Ensuite j'essaie d'appeler ma couche service (ou métier) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	@WebMethod
    	public @WebResult(name = "testWebService")
    	String testWebService(@WebParam(name = "param")
    	String param) throws ApiException {
    		MyService myservice = new MyService();
    		return "Test WebService " + param;
    	}
    A ce moment, wgen ne parvient pas à trouver les imports de UserService, par exemple la classe org.apache.log4j.Logger.
    Pourtant j'ai bien le jar de Log4j dans mon WEB-INF/lib, et il est ajouté dans le classpath (je sais pas trop comment ça se passe, j'utilise Eclipse).
    Par contre tout les imports de classes de mon projet se passent bien.
    J'ai du mal à voir d'où vient l'erreur car j'utilise Maven et SPring et tout cela s'imbrique.
    Toute aide sera la bienvenue !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Si tu parles du wsgen lancé par le serveur d'application :
    ça ne me semble pas etre un prblm de WS ... ! Plutot un défaut de config de ton projet tomcat.
    Vérifie que tu exportes bien les jar dans le WEB-INF/lib ***DE RUNTIME*** (ie celui que le plugin eclipse te crée quand tu lances tomcat depuis eclipse) et pas seulement dans le WEB-INF/lib qui apparait dans l'explorateur d'eclipse.
    De mémoire, eclipse crée un répertoire ".plugin" dans ton workspace qui contient "machin.... .servercore" (ou un truc comme ça). Dedans tu devrais trouver ton projet "compilé" (au pire fais un rechercher sur le nom d'une de tes classes...!)

    Si jamais les jars n'y sont pas, c'est dans les propriétés de ton projet que ça se passe : "Java Build Path" en particulier

    Mais comme tout ça est censé etre fait "tout seul".. j'imagine que tu parles toujours du wsgen que tu lances à la main dans ta console...

    si tu parles du wsgen "a la main" : il faut que tes jars soient explicitement dans le classpath utilisé par wsgen, je te suggère d'utiliser l'option wgen -classpath pour t'en assurer.

  3. #3
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Bonjour.

    Je lance wsgen à la main dans la console.
    J'utilise également maven donc les .jar ne sont pas importés dans le projet de la manière habituelle.

    Mais c'était bien un pb de classpath.
    Je lançais dans mon répertoire classes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     wsgen -cp . com.toto.ws.UserWebService -s ../../src/main/java
    IPuis j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     wsgen -cp '.:../myapp-1.0/WEB-INF/lib/*' com.toto.ws.UserWebService -s ../../src/main/java
    Mais le joker * ne marche pas, il faut nommer les jar un à un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     wsgen -cp '.:../myapp-1.0/WEB-INF/lib/spring-2.5.jar' com.toto.ws.UserWebService -s ../../src/main/java
    ET là hop, plus d'erreur.

    Merci de ton aide !

  4. #4
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Toujours plus fort gràce à un collègue: la tâche Ant pour lancer la génération.
    Même si vous n'y connaissez rien comme moi c facile : pour ceux qui utilisent eclipse, mettre un fichier build.xml à la racine du projet contenant ce code (ou compléter le fichier s'il existe) :

    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
    40
    41
    42
     
    ?xml version="1.0" encoding="UTF-8"?>
    <project name="MonProjet" default="wsgen">
    	<description>
                Mon beau Projet qui tue
        	</description>
     
    	<property name="wsgen_cp" value="WEB-INF/classes:WEB-INF/lib/hibernate3.jar:WEB-INF/classes:WEB-INF/lib/hibernate-annotations.jar:WEB-INF/lib/hibernate-commons-annotations.jar:WEB-INF/lib/hibernate-entitymanager.jar:WEB-INF/lib/spring.jar:WEB-INF/lib/ejb3-persistence.jar:WEB-INF/lib/log4j-1.2.14.jar:WEB-INF/lib/commons-beanutils.jar" />
     
    	<target name="wsgen">
    		<exec executable="wsgen">
     
    			<!-- Classpath -->
    			<arg value="-cp" />
    			<arg value="${wsgen_cp}" />
     
    			<!-- Classes de WebServices -->
    			<arg value="fr.compagnie.monprojet.UserWebService" />
     
    			<!-- Sortie des sources -->
    			<arg value="-s" />
    			<arg value="WEB-INF/src" />
     
    		</exec>
    		<exec executable="wsgen">
     
    			<!-- Classpath -->
    			<arg value="-cp" />
    			<arg value="${wsgen_cp}" />
     
    			<!-- Classes de WebServices -->
    			<arg value="fr.compagnie.monprojet.GroupWebService" />
     
    			<!-- Sortie des sources -->
    			<arg value="-s" />
    			<arg value="WEB-INF/src" />
     
    		</exec>
    		</exec>	
    	</target>
     
    </project>
    Après : clique droit sur le fichier et Run as Ant Build,
    ou dans l'onglet Ant click droit sur la tâche wsgen et Run as Ant Build

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2013, 17h28
  2. créer web service avec wsgen
    Par poti67 dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 10/11/2008, 09h38
  3. Problème avec wsgen + erreur
    Par afrikha dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 08/08/2008, 13h35
  4. [JAX-WS] quel est le role des classes générée avec WSGen
    Par solawe dans le forum Services Web
    Réponses: 2
    Dernier message: 05/05/2008, 11h44
  5. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18

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