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 :

Non initialisation du résultat


Sujet :

Services Web Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : Mai 2002
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Non initialisation du résultat
    Bonjour,
    Mon titre est mauvais, mais faut bien en trouver un...

    J'ai des EJB3 annotés pour en faire des WS. JBoss 4.2 me génère la WSDL, XFire 1.2.6 me génère le code client.

    Voici mon EJB3 :
    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
    @WebService(targetNamespace = WSConstants.TARGET_NAMESPACE)
    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
    public interface IdentificationManager {
     
    	/**
             * Connecte un User
             * @param email
             * @param pwd 
             * @param initializeUser
             * @return le User connecté
             * @throws LoginException Si la connexion a échouée
             */
    	@WebMethod
    	@WebResult(targetNamespace=WSConstants.TARGET_NAMESPACE)
    	public User login(
    			@WebParam(name="email", targetNamespace = WSConstants.TARGET_NAMESPACE) String email, 
    			@WebParam(name="pwd", targetNamespace = WSConstants.TARGET_NAMESPACE) String pwd,
    			@WebParam(name="initializeUser", targetNamespace = WSConstants.TARGET_NAMESPACE) boolean initializeUser) 
    		throws ServerException;
    L'appel se fait correctement, la méthode s'exécute bien côté serveur et renvoie bien l'objet souhaité.


    Mais côté client, je ne récupère pas l'objet souhaité.
    Si je fais l'appel suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Service serviceModel = new AnnotationServiceFactory().create(IdentificationManager.class);
    IdentificationManager identification = (IdentificationManager)new XFireProxyFactory().create(serviceModel, "http://127.0.0.1:8091/xxxx/IdentificationManagerBean?wsdl");
    user = identification.login(customer.getEmail(), customer.getPassword(), true);
    Je récupère un objet User (du type généré par XFire), qui n'est pas null, mais dont tous les attributs eux le sont!

    Et là, j'y vois rien. Encore l'objet serait null, mais là...

    J'ai tenté de faire l'appel autrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IdentificationManager identification = new IdentificationManagerBeanServiceClient().getIdentificationManagerBeanPort();
    user = identification.login(customer.getEmail(), customer.getPassword(), true);
    Et là, j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.xml.bind.JAXBException: com.travelsocial.ws.model.User is not known to this context
    J'avais déjà eu cette erreur auparavant, c'est pour ça que j'avais changé ma façon de faire l'appel (je n'avais pas trouvé mieux). Mais là, je me dis que le problème est peut-être le même : mon type User n'est pas connu du contexte, donc il ne me l'initialise pas avec les données qu'il reçoit.... ?

    Merci de votre aide.

    JM

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations forums :
    Inscription : Mai 2002
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Bon, j'ai résolu mon pb.
    En fait, j'avais plusieurs EJB que je publiais en tant que WS.
    Ces EJB partageaient le même modèle et quand je générais le client, chacun créait sa version du modèle. Pour éviter ça, j'avais fait en sorte que ces modèles soient créés dans le même package, c'est à dire que la dernière génération écrasait le modèle précédent. Et à priori, certains WS cherchaient ces versions écrasées qui pourtant étaient les mêmes!

    Bref, j'ai créé un EJB de plus haut niveau qui appelle ses petits copains, et qui est le seul que je publie en tant que WS. Comme ça, une seule version du modèle, et ça baigne.

    JM

    ps : quand je dis ça baigne, j'exagère, j'ai eu bcp d'autres galères, mais ça semble tourner.

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

Discussions similaires

  1. tester un tableau non initialiser
    Par andromeda dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 31/07/2007, 13h19
  2. Structure non initialisée
    Par poukill dans le forum C++
    Réponses: 4
    Dernier message: 28/06/2007, 21h52
  3. erreurs de variables non initialisées
    Par setsuko974 dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2007, 09h26
  4. applet non initialise
    Par rimbaut dans le forum Applets
    Réponses: 2
    Dernier message: 18/08/2006, 11h14
  5. Erreur en utilisation non-initialiser motif
    Par moniphal dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2005, 13h03

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