我有WSDL(我從外部提供商處獲得)。有這樣的行:配置WSDD以匹配AXIS中的WSDL
<xsd:complexType name="SalesRequest">
<xsd:all>
<xsd:element name="merchantid" type="xsd:int"/>
<xsd:element name="password" type="xsd:string"/>
...
</xsd:all>
</xsd:complexType>
...
<message name="SalesResponse">
<part name="request" type="tns:SalesResponse"/>
</message>
..
<portType name="InterfacePortType">
<operation name="Sales">
<documentation>some text</documentation>
<input message="tns:SalesRequest"/>
<output message="tns:SalesResponse"/>
</operation>
我已經生成了基於此WSDL(使用JAX-RPC)的Java類。
然後我創建了Axis Service(MyService implements InterfacePortType)。
我準備好的XSDD文件將MyService部署到web應用程序。
所以,後來我打電話的我MySerive的方法之一,並得到了響應序列化在服務器端的那一刻這個錯誤:
意想不到的元素名稱:預期=請求,實際= SalesReturn
這意味着我的XSDL和XSDD沒有太多其他。爲MyService準備應對這樣的(但數量而不是通過網絡發送):
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope
...
<SalesReturn href="#id0"/></ns1:SalesResponse><multiRef xmlns:ns2=
...
</soapenv:Envelope>
的問題是:我應該WSDD以有「請求」做什麼,而不是「SalesReturn」作爲迴應來自服務的XML?
我還不知道這'返回'後綴來自哪裏。
- 一些步驟,我已經做:
我用Google搜索,發現WSDL應該有「的架構將elementFormDefault =‘合格’」在裏面。但是我不能改變WSDL,因爲它是外部的,它是由外部提供者提供的。
它似乎與以下相關:http://ws-rx.blogspot.ca/2006/12/common-jaxrpc-error-unexpected-element.html – ses
您是否使用相同的Wsdl創建客戶端和服務器部分?也就是說你每次都從Wsdl開始? – davidfrancis
nope。只爲客戶。這個問題,如何使用兩者之一?我已經在這裏問過這個問題了:http://stackoverflow.com/questions/12608282/how-to-generate-wsdd-based-on-code – ses