2

私はこの分野に不慣れで、ESB 経由で Web サービスにアクセスする必要があります。ここで述べたように-プロキシサービスを使用したサービス仲介私はそれを作成しようとしました。その後、私はそれを実行し、次のような応答を取得します:

<TryitProxyError xmlns:h="http://wso2.org/ns/TryitProxy"
h:status="SOAP envelope error">org.apache.axis2.AxisFault:
The input stream for an incoming message is null.</TryitProxyError>

しかし、私はSOAPUiを使用して同じWebメソッドを実行しようとしましたが、以下のように期待される出力を得ました:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <getPatientHistoryResponse xmlns="http://tilani.lk/">
         <getPatientHistoryResult>
            <NIC>123</NIC>
            <FullName>ABC DEF</FullName>
            <FirstName>ABC</FirstName>
            <Surname>DEF</Surname>
            <Title>Mr.</Title>
            <Gender>M/Gender>
         </getPatientHistoryResult>
      </getPatientHistoryResponse>
   </soap:Body>
</soap:Envelope>

これの理由は何ですか?私は.netを使用してこれを作成しました

私のWSDL アドレス-http://localhost:2935/PatientRegService.asmx?WSDL

次に、 エンドポイントを次のように定義します-http://localhost:2935/PatientRegService.asmx

編集 私のプロキシ構成は次のとおりです。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="PatientManagement" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <outSequence>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="http://localhost:2935/PatientRegService.asmx?WSDL"/>
      </endpoint>
   </target>
   <publishWSDL uri="http://localhost:2935/PatientRegService.asmx?WSDL"/>
   <description></description>
</proxy>
4

2 に答える 2

3

ESB 経由で Web サービスにアクセスするだけの場合は、プロキシ サービスを作成し、元のサービス URI の代わりにプロキシ サービス URI にアクセスする必要があります。パス スルー プロキシの例に従ってください。

于 2013-03-04T12:04:58.540 に答える
1

次のプロキシを試して、何が得られるかを確認してください。ソース ビュー エディターを使用して、このプロキシ構成を追加します。

 <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="testProxy"
           transports="https http"
           startOnLoad="true"
           trace="disable">
       <description/>
       <target>
          <inSequence>

             <log level="full">
                <property name="testprop" value="incoming message"/>

             </log>

             <send>
                <endpoint>
                   <address uri="http://localhost:2935/PatientRegService.asmx"/>
                </endpoint>
             </send>
          </inSequence>
          <outSequence>
             <send/>
          </outSequence>
       </target>
    </proxy>
于 2013-03-07T08:03:12.807 に答える