我正在尝试制作一个ws,而且我对cxf生成的类有小问题。
每当我尝试创建列表时,它都会生成为静态内部类(包装器)的字段。
例如
<xs:complexType name="customer">
<xs:sequence>
<xs:element name="customerId" type="xs:int"/>
<xs:element name="orders">
<xs:complexType>
<xs:sequence>
<xs:element name="order" type="tns:order" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="order">
<xs:sequence>
<xs:element name="id" type="xs:long" />
<xs:element name="name" type="xs:string" />
</xs:sequence>
</xs:complexType>
会生成
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "customer", propOrder = {
"customerId",
"orders"
})
public class Customer {
protected int customerId;
@XmlElement(required = true)
protected Customer.Orders orders;
...
public static class Orders {
@XmlElement(required = true)
protected List<Order> order;
...
我希望得到的是
public class Customer {
protected int customerId;
protected List<Order> orders;
...
此示例类型的xml应如下所示:
<customer>
...
<orders>
<order>
<id></id>
<name></name>
</order>
<order>
<id></id>
<name></name>
</order>
...
</orders>
</customer>
根据我的理解,在执行java2wsdl时可以使用@XmlRootElement,但有没有办法从wsdl生成这种类型的类?
目前正在调用customer.getOrders()。getOrder()会返回一个有点违反直觉的订单列表