在Web服务中接受数组参数需要做什么?

时间:2009-10-19 21:48:27

标签: java jaxb jax-ws cxf

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

我创建了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进行一些自定义?

1 个答案:

答案 0 :(得分:-1)

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注释。