jaxws网络服务。改变节点结构

时间:2012-04-30 10:44:52

标签: java maven jax-ws

我的Entity类中有下一个代码

class Role {  
private List<String> tubes;  
//...  
}  

Next Maven使用 jaxws-maven-plugin

生成请求 - 响应类
@XmlRootElement(name = "getRoleResponse", namespace = "http://ws.config.com/")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "getRoleResponse", namespace = "http://ws.config.com/")
public class GetRoleResponse {

    @XmlElement(name = "return", namespace = "")
    private Role _return;
//...

}  

我发送肥皂请求并获得响应,如

<tubes>1SO</tubes>
<tubes>2SO</tubes>
<tubes>3SO</tubes>
<tubes>4SO</tubes>  

但我希望获得如下请求:

<tubes> 
    <tube>1SO</tube>
    <tube>2SO</tube>
    <tube>3SO</tube>
    <tube>4SO</tube>  
</tubes>   

我该怎么办?

编辑:

生成的WSDL的一部分

<xs:complexType name="role">
    <xs:sequence>
      <xs:element name="tubes" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

2 个答案:

答案 0 :(得分:4)

  1. 的方法:

    • 指定XSD
    • 生成JAXB类
    • 在Web服务中使用生成的JAXB类
  2. 的方法:

答案 1 :(得分:0)

将您的List<String>更改为List<Tube>,并使用字符串元素创建类型Tube