в настоящее время у нас есть проблемы с реализацией JAX-WS, особенно в получении значения, возвращаемого службой, которое в нашем случае всегда равно null, хотя мы присваиваем ему значение.
Некоторый код перед болееобъяснения нашей проблемы:
Вот подпись нашей операции:
@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);
Вот наш тестовый пример веб-сервиса:
@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());
}
И, наконец, наш 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");
}
Как видно из теста, мы всегда получаем нулевое значение.Что мы делаем неправильно, если в держателе ответа всегда возвращается нулевой объект?
Заранее спасибо.