私は、古い SOAP インターフェースの復活に割り当てられた SOAP 初心者です。SOAP サービスを新しい tomcat の新しいパスに移植しました (クライアントは変更しませんでした)。http://myserver:8181/soap/SoapTest?wsdlというリクエストを送信する と、次のように返されます。
<wsdl:definitions xmlns:ns1="http://webservices.mycompany.com"
xmlns:ns3="http://schemas.xmlsoap.org/wsdl/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.mycompany.com/SoapTest"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="SoapTestService"
targetNamespace="http://www.mycompany.com/SoapTest">
<wsdl:import location="http://myserver:8181/soap/SoapTest?wsdl=SoapTest.wsdl"
namespace="http://webservices.mycompany.com"></wsdl:import>
<wsdl:binding name="SoapTestServiceSoapBinding" type="ns1:SoapTest">...</wsdl:binding>
<wsdl:service name="SoapTestService">...</wsdl:service>
</wsdl:definitions>
有望そうです。インポート場所SoapTest?wsdl=SoapTest.wsdlへのリクエストは、次を返します。
<wsdl:definitions xmlns:ns1="http://webservices.mycompany.com"
xmlns:ns2="http://jaxb.dev.java.net/array" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="SoapTest"
targetNamespace="http://webservices.mycompany.com">
<wsdl:types>
<xs:schema xmlns:tns="http://webservices.mycompany.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://webservices.mycompany.com" version="1.0">
<xs:complexType name="sessionObj">
<xs:sequence>
<xs:element name="code" type="xs:int"/>
<xs:element name="id" type="xs:long"/>
<xs:element minOccurs="0" name="role" type="xs:string"/>
<xs:element minOccurs="0" name="username" type="xs:string"/>
</xs:sequence>
</xs:complexType>
... (and so on)
そのため、クライアントはメンバー xs name:type 関連付けを受け取ることができますが、そうではないか、適用されていないようです。あれは ...
うーん..レビューすると、xsが名前空間として使用されているのがわかりますが、xmlns:xsdが定義されていますか?? これはどのように起こりますか?
このインターフェイス (Linux) への ZSI クライアント クエリ (違いがある場合は Windows から) は、予想されるデータ ペイロードを含む応答を受け取りますが、各データ項目を個別の「プロパティ」にマップします。その結果、一般的なプロパティのリストが生成されます。
各プロパティがその xs 型 (例: int、long、string、上記の文字列) にキャストされた、型指定されたメンバーのリストを期待していましたよね?
手がかりを事前にありがとう。