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
);
另外,请确保
Mix
和Stuff
具有JAXB批注。