[英]Spring web service maven-jaxb2-plugin complex input
I need to create a client based on WSDL. 我需要基于WSDL创建一个客户端。 I am using Spring 4 and Spring web service 2.2.0. 我正在使用Spring 4和Spring Web Service 2.2.0。 Using maven-jaxb2-plugin I created classes and able to invoke web service. 使用maven-jaxb2-plugin创建了类并能够调用Web服务。 I am using object factory to create some objects, due to complex data type. 由于数据类型复杂,我正在使用对象工厂创建一些对象。 Now I have a complex input. 现在我有一个复杂的输入。 and I don't find appropriate methods in the generated class. 并且在生成的类中找不到合适的方法。
As per SOAP UI , the request body looks like 按照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>
Now i don't find a method to set ArrayOfITRATERS
but I have getArrayOfITRATERSItem()
现在我找不到设置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);
My autogenerated ArrayOfITRATERS
class looks like 我自动生成的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;
}
}
I am not sure how to set the ArrayOfITRATERS
Any help is appreciated. 我不确定如何设置ArrayOfITRATERS
任何帮助,将不胜感激。
Does 是否
getArrayOfITRATERSItem().add(myITRATERS);
solve your problem? 解决你的问题?
JAXB XJC does not generate setters for collections by default. 默认情况下,JAXB XJC不会为集合生成设置器。 Just add your items to the collection returned by the getter. 只需将您的项目添加到getter返回的集合中即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.