【问题标题】:Spring web service maven-jaxb2-plugin complex inputspring web service maven-jaxb2-plugin 复杂输入
【发布时间】:2014-10-12 11:38:47
【问题描述】:

我需要创建一个基于 WSDL 的客户端。我正在使用 Spring 4 和 Spring Web 服务 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 任何帮助表示赞赏。

【问题讨论】:

    标签: spring web-services jaxb maven-3


    【解决方案1】:

    getArrayOfITRATERSItem().add(myITRATERS);
    

    解决您的问题?

    默认情况下,JAXB XJC 不会为集合生成 setter。只需将您的项目添加到 getter 返回的集合中即可。

    【讨论】:

    • 我尝试手动添加一个 setter 方法,它也有效。但你的工作完美。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2018-03-21
    • 1970-01-01
    相关资源
    最近更新 更多