[英]axis2 “unexpected subelement value”
我正在尝试使用Axis2连接到SOAP Web服务。 这以前在Axis 1中起作用,但是2引起了问题。 我已经使用wsdl2java
重新生成了Java代码,该代码已经为Axis2生成了存根,但是当处理带有“意外子元素值”的服务器响应元素时,它就wsdl2java
了。
有问题的wsdl文档的片段是:
<complexType name="A">
<sequence>
<element name="a" type="xsd:base64Binary" minOccurs="1" maxOccurs="1" nillable="false" />
<element name="b" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="c" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="d" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="e" type="xsd:string" minOccurs="1" maxOccurs="1" />
<element name="f" type="xsd:string" minOccurs="1" maxOccurs="1" />
</sequence>
</complexType>
返回的响应如下所示:
<stuff>
<a>dsfusdbifsdisuibvuidnfuisndfvl\sbvuidn</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
<stuff>
<a>dsfusdbifsdisdfsfsdfsdfuibvuidnfuisndfvl\dfgd</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
<stuff>
<a>dsfusdbifsdisuibvuidnfuisndfvl\sdfsdfvv</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
<stuff>
<a>wwasdfgfbdfb\sbv==uidn</a>
<b>string</b>
<c>string</c>
<d>string</d>
<e>string</e>
<f>string</f>
</stuff>
那类的东西。 这些<stuff>
块中的大多数<stuff>
正常运行,但是最后一个在<b>
上失败,并出现上述错误。 调试代码失败,原因是reader.isStartElement()
返回false并且new javax.xml.namespace.QName("","b").equals(reader.getName())
为false- reader.getName()
返回“一种”。 进一步调试后, reader.currentElement
报告“ string ”,而不是通常返回的包装对象类型。 我已经使用Axiom 1.2.7和1.2.8进行了尝试-两者似乎都遇到相同的问题。 这是一个已知的错误,还是任何人都可以了解可能发生的情况?
似乎这是SAX绑定生成器的问题。 切换JAXB绑定已解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.