2010-08-24 4 views
2

Nous avons actuellement des problèmes avec une implémentation JAX-WS, en particulier pour obtenir une valeur retournée par le service, qui dans notre cas est toujours nulle, bien que nous lui donnions une valeur.Comment définir une valeur pour un fichier javax.xml.ws.Holder?

Une partie du code avant que d'autres explications de notre problème:

est ici la signature de notre opération:

@WebMethod(action = "urn:genererEdition") 
public void genererEdition(
    @WebParam(name = "requeteEdition", targetNamespace = "http://creditcgi.com/serviceeditique", partName = "requete") 
    RequeteEdition requete, 
    @WebParam(name = "reponseEdition", targetNamespace = "http://creditcgi.com/serviceeditique", mode = WebParam.Mode.OUT, partName = "reponse") 
    Holder<ReponseEdition> reponse, 
    @WebParam(name = "documentProduit", targetNamespace = "", mode = WebParam.Mode.OUT, partName = "documentProduit") 
    Holder<byte[]> documentProduit); 

Voici notre test de service web cas:

@Test 
public void testCallGenererEdition() { 
    RequeteEdition requete = new RequeteEdition(); 

    Holder<ReponseEdition> reponseHolder = new Holder<ReponseEdition>(new ReponseEdition()); 
    Holder<byte[]> documentHolder = new Holder<byte[]>(new byte[512]); 

    editique.genererEdition(requete, reponseHolder, documentHolder); 

    Assert.assertNotNull(reponseHolder.value); 
    Assert.assertNotNull(reponseHolder.value.getCodeRetour()); 
} 

Et enfin, notre implémentation de WS:

@Override 
public void genererEdition(RequeteEdition requete, 
     Holder<ReponseEdition> reponse, Holder<byte[]> documentProduit) { 

    // if we do no instanciate ReponseEdition, we got a Null Pointer Exception 
    reponse.value = new ReponseEdition(); 

    reponse.value.setCodeRetour("OK"); 
} 

Comme vous pouvez le voir avec le test, nous obtenons toujours null. Que faisons-nous de mal pour avoir toujours un objet nul retourné dans le porte-réponse?

Merci à l'avance.

+1

En fait, le problème était dû au WSDL, nous avons utilisé, et la sortie composée en mulitpart: ... nous avons décidé de changer le WSDL pour éviter le problème, mais nous n'a pas encore eu la réponse ... – ipingu

Répondre

5

Cela résoudra votre problème d'obtenir des valeurs NULL en réponse.

....genererEdition(....){ ReponseEdition re = new ReponseEdition(); reponse.value = re; }

Questions connexes