ArrayOfXXX类超出数组类型的soap输入参数

时间:2018-11-28 08:13:34

标签: web-services soap cxf jax-ws soap-client

我有一个输入参数为Array的方法。当我从中生成存根时,将创建列表类型。

但是我想知道如何围绕数组类型创建包装类。对于类Apple,应创建ArrayOfApple

是否需要在类中进行任何更改或需要使用任何特定的插件?

注意:我在JAXWS实现中使用Apache CXF

下面是示例代码:

EmployeeService.java

@WebService(endpointInterface="com.test.EmployeeService")
@SOAPBinding(style=Style.DOCUMENT)
public class EmployeeService {

    public String updateEmpRoles(@WebParam(name="EmpRoles")EmpRole[] empRoles) {
        return "SUCCESS";
    }
}

EmpRole.java

@XmlType(name="EmpRole")
public class EmpRole {
    private String empRole;

    public String getEmpRole() {
        return empRole;
    }

    public void setEmpRole(String empRole) {
        this.empRole = empRole;
    }
}

发布后,wsdl的生成如下-

enter image description here

但是我期望WSDL应该创建ArrayOfEmpRole并且应该包装List<EmpRole>

请帮助

简而言之-在下面的链接中,我想要比约恩不想要的东西。 (在他的情况下,它将自动创建ArrayOfXXX,这是我需要的)-Arrays in SOAP method Parameters generated via JAX-WS?

1 个答案:

答案 0 :(得分:0)

我将从“代码优先”转换为“合同优先”方法,这意味着从WSDL开始并使用wsdl2java从中生成存根。这样,您可以确保WSDL看起来像您想要的方式。

如果您希望坚持使用当前的方法,那么实现包装的最简单方法可能是引入另一个类。