【问题标题】:wsimport creates unexpected rest codewsimport 创建意外的休息代码
【发布时间】:2015-06-16 21:09:33
【问题描述】:

我有一个带有以下类型片段的 wsdl,它对组织单元上的自关联进行建模:

...<xs:complexType name="OrganisationUnitBIAssocType">
 <xs:complexContent>
  <xs:extension base = "tns:OrgUnitBIType">
   <xs:sequence>
     <xs:element name ="ParentUnit" minOccurs="0" type="tns:OrgUnitBIType"/>
   </xs:sequence>
  </xs:extension>
 </xs:complexContent>
</xs:complexType>
<xs:complexType name="OrgUnitBIType">
 <xs:complexContent>
    <xs:extension base="tns:refableWebServiceParameterType">
      <xs:sequence>
       <xs:element name="Oid" type="xs:long"/>
       <xs:element name="NAme" type="xs:String"/>
      </xs:sequence>
    </xs:extension>
   </xs:complexContent>
</xs:complexType>...

wsimport 工具为组织单元和关联生成以下两个 Java 类:

@XmlAccessorType(XmlAccessType.Field)
@XmlType(name = "OrgUnitBIType", porpOrder = {"rest"})
@XmlSeeAlso({OrganisationUnitBIAssocType.class})

public class OrgUnitBIType extends RefableWebServiceParameterType
{
 @XmlElementRefs({
   @XmlElementRefs(name = "Name", type =JAXBElement.class, required = false),
   @XmlElementRefs(name = "Oid", type =JAXBElement.class, required = false)
    })
 protected List<JAXBElement<? extends Serializable>> rest;
 if(rest == null) {`
    rest = new ArrayList<JAXBElement<? extends Serializable>>();`
 }
 return this.rest;`
 }
}
@XmlAccessorType(XmlAccessType.Field)
@XmlType(name = "OrganisationUnitBIAssocType", porpOrder = {"rest"})
public class OrganisationUnitBIAssocType extends OrgUnitBIType {}

我想知道为什么会出现这些 JAXBElement。我更喜欢有代码 没有 getRest 方法的 JAX-WS 风格的 getter 和 setter。

有人知道如何实现吗?

【问题讨论】:

    标签: java wsimport


    【解决方案1】:
    protected List<JAXBElement<? extends Serializable>> rest;
    

    检查具有相同名称的重复元素。如果任何元素重复,wsimport 会生成一个列表,而不是单独的 getter 和 setter。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      相关资源
      最近更新 更多