ログアウトするための次の WSDL リクエストを送信します。
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><Logout xmlns="http://tempuri.org/wsdl/"><vsSecurityKey>0</vsSecurityKey></Logout></soap:Body></soap:Envelope>
そして、私は以下の応答を受け取ります:
faultcode: SOAP-ENV:Server
faultstring: WSDLReader: soapAction http://tempuri.org/wsdl/Logoutを使用して SOAP メッセージで要求された操作は、WSDL ファイルで定義されていません。これは、名前空間が間違っているか、大文字と小文字が正しくないことが原因である可能性があります
ここで何が間違った名前空間なのかわかりません。何かご意見は..
以下はWSDLファイルです(ログアウトに関連する部分を抜粋しました)
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated 04/04/06 by Microsoft SOAP Toolkit WSDL File Generator, Version 1.02.813.0 -->
<definitions name="nsi_soap" targetNamespace="http://tempuri.org/wsdl/" xmlns:wsdlns="http://tempuri.org/wsdl/" xmlns:typens="http://tempuri.org/type" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stk="http://schemas.microsoft.com/soap-toolkit/wsdl-extension" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="http://tempuri.org/type" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified">
</schema>
</types>
<message name="SOAP_2.Logout">
<part name="vsSecurityKey" type="xsd:string"/>
</message>
<message name="SOAP_2.LogoutResponse">
</message>
<message name="SOAP_2.Login">
<part name="vsUserId" type="xsd:string"/>
<part name="vsPassword" type="xsd:string"/>
<part name="vlOrgId" type="xsd:int"/>
</message>
<message name="SOAP_2.LoginResponse">
<part name="Result" type="xsd:string"/>
</message>
<portType name="SOAP_2SoapPort">
<operation name="CreateMergeRequest" parameterOrder="vsSecurityKey vsNSN0 vsNSN1 vsNSN2 vsNSN3 vsNSN4 vsNSN5 vsNSN6 vsNSN7 vsNSN8 vsNSN9 vsUser">
<input message="wsdlns:SOAP_2.CreateMergeRequest"/>
<output message="wsdlns:SOAP_2.CreateMergeRequestResponse"/>
</operation>
<operation name="Update" parameterOrder="vsSessionKey vsNSN vsSurname vsForename1 vsForename2 vsForename3 vsDOB vsPreferredName vsNameDOBVerification vsResidentialStatus vsResidentialVerification vsGender vsUser vsAltSurname vsAltForename1 vsAltForename2 vsAltForename3 vsAltPreferredName vsAltNameDobVerification">
<input message="wsdlns:SOAP_2.Update"/>
<output message="wsdlns:SOAP_2.UpdateResponse"/>
</operation>
<operation name="Insert" parameterOrder="vsSecurityKey vsSurname vsForename1 vsForename2 vsForename3 vsDOB vsPreferredName vsNameDOBVerification vsResidentialStatus vsResidentialStatusVerification vsGender vsAlias_lastname vsAlias_forename1 vsAlias_forename2 vsAlias_forename3 vsAlias_prefered vsAlias_NameDOBVerification vsOverride vsUser">
<input message="wsdlns:SOAP_2.Insert"/>
<output message="wsdlns:SOAP_2.InsertResponse"/>
</operation>
<operation name="Search" parameterOrder="vsSecurityKey vsNSN vsName vsDOB vsGender vsResidentialStatus vsUser">
<input message="wsdlns:SOAP_2.Search"/>
<output message="wsdlns:SOAP_2.SearchResponse"/>
</operation>
<operation name="Logout" parameterOrder="vsSecurityKey">
<input message="wsdlns:SOAP_2.Logout"/>
<output message="wsdlns:SOAP_2.LogoutResponse"/>
</operation>
<operation name="Login" parameterOrder="vsUserId vsPassword vlOrgId">
<input message="wsdlns:SOAP_2.Login"/>
<output message="wsdlns:SOAP_2.LoginResponse"/>
</operation>
</portType>
<binding name="SOAP_2SoapBinding" type="wsdlns:SOAP_2SoapPort">
<stk:binding preferredEncoding="UTF-8"/>
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Logout">
<soap:operation soapAction="http://tempuri.org/action/SOAP_2.Logout"/>
<input>
<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="Login">
<soap:operation soapAction="http://tempuri.org/action/SOAP_2.Login"/>
<input>
<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://tempuri.org/message/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="nsi_soap">
<port name="SOAP_2SoapPort" binding="wsdlns:SOAP_2SoapBinding">
<soap:address location="https://nsicompl.nsi.govt.nz/interface/nsi_soap.wsdl"/>
</port>
</service>
</definitions>