簡體   English   中英

Spring Web Service Maven-JAXB2-插件復雜輸入

[英]Spring web service maven-jaxb2-plugin complex input

我需要基於WSDL創建一個客戶端。 我正在使用Spring 4和Spring Web Service 2.2.0。 使用maven-jaxb2-plugin創建了類並能夠調用Web服務。 由於數據類型復雜,我正在使用對象工廠創建一些對象。 現在我有一個復雜的輸入。 並且在生成的類中找不到合適的方法。

按照SOAP UI,請求主體看起來像

<soapenv:Body>
  <zhin:ZHIN_HR_CA_EVALUATOR_SEND_RFCresponse>
    <IN_DATA>
      <IV_PERNR>4005002</IV_PERNR>
      <IT_RATERS>
        <!--1 or more repetitions:-->
        <ArrayOfIT_RATERSItem>
          <ORGTX>?</ORGTX>
          <DESIG>?</DESIG>
          <ENAME>N V S Ravi Kumar</ENAME>
          <ZCPERNRT>?</ZCPERNRT>
          <PERNR>4005001</PERNR>
          <WEIGH>?</WEIGH>
          <SEQUENCE>1St Evaluator</SEQUENCE>
        </ArrayOfIT_RATERSItem>
      </IT_RATERS>
      <IV_APCAT>1</IV_APCAT>
    </IN_DATA>
  </zhin:ZHIN_HR_CA_EVALUATOR_SEND_RFCresponse>
</soapenv:Body>

現在我找不到設置ArrayOfITRATERS的方法,但是我有getArrayOfITRATERSItem()

final ObjectFactory objectFactory = new ObjectFactory();
final INDATA requestValue = objectFactory.createINDATA();
requestValue.setIVPERNR(String.valueOf(id));
requestValue.setIVAPCAT(AppConstants.CA);
final ArrayOfITRATERS value = objectFactory.createArrayOfITRATERS();
value.set .....(not found ???)        
requestValue.setITRATERS(value);

我自動生成的ArrayOfITRATERS類看起來像

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfIT_RATERS", propOrder = {
    "arrayOfITRATERSItem"
})
public class ArrayOfITRATERS {

    @XmlElement(name = "ArrayOfIT_RATERSItem", required = true)
    protected List<ITRATERS> arrayOfITRATERSItem;

    public List<ITRATERS> getArrayOfITRATERSItem() {
        if (arrayOfITRATERSItem == null) {
            arrayOfITRATERSItem = new ArrayList<ITRATERS>();
        }
        return this.arrayOfITRATERSItem;
    }
}

我不確定如何設置ArrayOfITRATERS任何幫助,將不勝感激。

是否

getArrayOfITRATERSItem().add(myITRATERS);

解決你的問題?

默認情況下,JAXB XJC不會為集合生成設置器。 只需將您的項目添加到getter返回的集合中即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM