jax-ws を使用した単純な Java プログラムを使用して、スイッチヤード Web サービスを呼び出しています。私たちの実稼働サーバーは、switchyard 1.1 を搭載した jboss eap 6.1 であり、wildfly 10.1.0 と switchyard 2.1 でテストを行っています。どちらの環境でも状況は同じです。Web サービスを呼び出すと、サーバーの応答 (トレースによる) が適切に見えるにもかかわらず、常に null が返されます。
リクエスト/レスポンスの例:
リクエスト:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:identifyUser xmlns:ns3="urn:pt.ipc.pio:pio-organizationservices:1.0" xmlns:ns2="urn:pt.ipc.pio.model.organization:1.0">
<identifyUserInput>
<userName>****************</userName>
</identifyUserInput>
</ns3:identifyUser>
</S:Body>
</S:Envelope>
応答:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<identifyUserResponse xmlns="urn:pt.ipc.pio:pio-organizationservices:1.0">
<ns2:userIdentity xmlns:ns2="urn:pt.ipc.pio.model.organization:1.0">
<uniqueId>**********</uniqueId>
<personalData>
<nif>**********</nif>
<name>**********************</name>
<gender>*</gender>
<identification>********</identification>
</personalData>
<ous>
<ou>****</ou>
<numSGA>********</numSGA>
<numInt>*****</numInt>
<role>***************************************************************</role>
<type>*****</type>
<emailAlt>*******************</emailAlt>
<active>****</active>
<admissionDate>**********************</admissionDate>
</ous>
<preferedOU>
<ou>****</ou>
<numSGA>********</numSGA>
<numInt>*****</numInt>
<role>***************************************************************</role>
<type>*****</type>
<emailAlt>*******************</emailAlt>
<active>****</active>
<admissionDate>**********************</admissionDate>
</preferedOU>
</ns2:userIdentity>
</identifyUserResponse>
</soap:Body>
</soap:Envelope>
http サーバーで応答をハードコーディングしていくつかのテストを行い、xml を
<identifyUserResponse xmlns="urn:pt.ipc.pio:pio-organizationservices:1.0">
に
<ns:identifyUserResponse xmlns:ns="urn:pt.ipc.pio:pio-organizationservices:1.0">
(名前空間識別子を追加) Java クライアントが動作を開始します。
jax-ws ri、metro、cxf でテストした結果は常に同じです。