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:
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:
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:
1 2
| IdentificationManager identification = new IdentificationManagerBeanServiceClient().getIdentificationManagerBeanPort();
user = identification.login(customer.getEmail(), customer.getPassword(), true); |
Et là, j'ai l'erreur suivante :
Code:
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