У меня есть следующие теги в WSDL:
<xs:element name="promoCodeValues" maxOccurs="1" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:element nillable="false" name="promoCode" type="ac:stringMax20"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Когда я использую Eclipse и генерирую клиент Axis (используя Axis 1.4), я получаю следующие строки описания в своем классе:
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("promoCodeValues");
elemField.setXmlName(new javax.xml.namespace.QName("http://www.moneygram.com/AgentConnect1105", "promoCodeValues"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.moneygram.com/AgentConnect1105", "stringMax20"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setItemQName(new javax.xml.namespace.QName("http://www.moneygram.com/AgentConnect1105", "promoCode"));
typeDesc.addFieldDesc(elemField);
В моем Java-коде я вызываю это, чтобы заполнить promoCodeValues:
String[] promoCodes = {"test"};
request.setPromoCodeValues(promoCodes);
Но в моем XML у меня всегда есть это:
<promoCodeValues><promoCode xsi:nil="true"/></promoCodeValues>
Я нашел это в JIRA Axis: https://issues.apache.org/jira/browse/AXIS-2054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs
Я пошагово следовал предоставленному патчу и обнаружил, что все уже было там (я использую ось 1.4).Кто-нибудь знает, как решить эту проблему ??Я действительно запутался и не хочу переходить на что-то другое.