WS制作Web服务。作为参数,我接受两个字符串和一个对象数组,这些对象的类型是项目中的类。

我已经创建了webservice接口和实现,它与此类似:

@WebMethod(operationName = "getStuff")
@WebResult(name = "result")
 Mix getStuff(
    @WebParam(name = "string1") String one,
    @WebParam(name = "string2") String two,
    @WebParam(name = "stuff") Stuff[] stuff
);


我返回的是Mix类型的对象,这是我的项目中的一个类,并且我接受Stuff类型的数组,这是我的项目中的另一个类。从Java进行测试不是问题,但是当其他人尝试使用该服务时,或者当我尝试使用soapUI发送请求时,该数组始终为null。我需要怎么做,以便使使用我的服务的任何人都可以正确地发送Stuff类型的数组?我需要对JAXB进行一些自定义吗?

最佳答案

JAXB2使用列表而不是数组,因此应将签名替换为

@WebMethod(operationName = "getStuff")
@WebResult(name = "result")
 Mix getStuff(
    @WebParam(name = "string1") String one,
    @WebParam(name = "string2") String two,
    @WebParam(name = "stuff") java.util.List<Stuff> stuff
);


另外,请确保MixStuff具有JAXB批注。

10-06 07:09
查看更多