如何将值设置为javax.xml.ws.Holder?

如何将值设置为javax.xml.ws.Holder?,java,web-services,jax-ws,Java,Web Services,Jax Ws,我们目前在JAX-WS实现方面遇到了问题,特别是在获取服务返回的值方面,在我们的例子中,该值总是空的,尽管我们给它一个值 在对我们的问题进行更多解释之前,先编写一些代码: 这是我们运营的签名: @WebMethod(action = "urn:genererEdition") public void genererEdition( @WebParam(name = "requeteEdition", targetNamespace = "http://creditcgi.com/serv

我们目前在JAX-WS实现方面遇到了问题,特别是在获取服务返回的值方面,在我们的例子中,该值总是空的,尽管我们给它一个值

在对我们的问题进行更多解释之前,先编写一些代码:

这是我们运营的签名:

@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);
@WebMethod(action=“urn:generaredition”)
公共无效一般性修改(
@WebParam(name=“requeteEdition”,targetNamespace=”http://creditcgi.com/serviceeditique“,partName=“requete”)
重新计算条件重新计算,
@WebParam(name=“reponsedition”,targetNamespace=”http://creditcgi.com/serviceeditique,mode=WebParam.mode.OUT,partName=“response”)
持有人回复,
@WebParam(name=“documentProduit”,targetNamespace=”“,mode=WebParam.mode.OUT,partName=“documentProduit”)
持有人(产品);
以下是我们的web服务测试用例:

@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());
}
@测试
public void testcallgeneraredition(){
RequeteEdition requete=新的RequeteEdition();
持有者reponseHolder=新持有者(new reponsedition());
Holder documentHolder=新的Holder(新字节[512]);
编辑总编辑(要求、报告持有人、文件持有人);
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");
}
@覆盖
公共作废一般条款(重新条款重新条款,
持有人回复,持有人文件(产品){
//如果我们没有Instanceate reponsedition,我们会得到一个空指针异常
reponse.value=新的reponsedition();
response.value.setCodeRetour(“OK”);
}
正如您在测试中看到的,我们总是得到null。在响应持有者中总是返回空对象,这有什么错呢


提前感谢您。

它将解决您在响应中获取空值的问题

…通用编辑(…){
reponsedition re=新的reponsedition();
reponse.value=re;

}

事实上,问题在于我们使用的WSDL,以及由mulitpart组成的输出:。。。我们决定更改WSDL以避免问题,但我们还没有得到答案。。。