0

エンドポイントの上部にパススルー プロキシ サービスを作成し、公開 wsdl オプションで [ソース URL を指定] を選択しました。エンドポイントは wsdl 定義の xsd を参照します。プロキシ Web サービスは罰金を生成しましたが、この Web サービスをクライアント (SOAP UI) からロードしようとすると、プロキシ サービスの wsdl URL で xsd が参照される方法が原因で、エラーがスローされます。

xsd 定義を使用した実際の Web サービスのサンプル

<types>
    <xsd:schema>
        <xsd:import namespace="http://service.example.com/" schemaLocation="http://172.16.91.82:7001/DemoService/DemoService?xsd=1"/>
    </xsd:schema>
</types>

スキーマへの参照を含むプロキシ サービスのサンプル。

<wsdl:types>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified">
        <xsd:import namespace="http://service.example.com/" schemaLocation="SecuredServiceProxy?xsd=http://172.16.91.82:7001/DemoService/DemoService?xsd=1"/>
    </xsd:schema>
</wsdl:types>

クライアントがスキーマの場所をロードする際に問題があります (もちろん無効に見えます)

1) 私はこれを取り除く方法を探しています。

2) このプロキシ サービスは、実際のサービスをエンド ユーザーから隠すことを目的としています。xsd スキーマがプロキシ サービス wsdl 定義にリストされている方法は、実際のエンドポイント情報をエンド ユーザーに漏らしています。プロキシ サービスの生成された wsdl 定義に表示される xsd URL を回避する方法はありますか?

ありがとう。

4

2 に答える 2

2

つまり、エンドポイントが URL であり、発行する wsdl も URL であるということですか? パブリッシュ wsdl をインラインとして指定してみると、ESB_Home に xsd URL のコンテンツを含む .xsd ファイルを作成できます。次に、場所を url から、インライン wsdl の ESB_Home ディレクトリにある xsd ファイルの名前に変更することで、.xsd ファイルを参照できます。

<wsdl:types>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified">
        <xsd:import namespace="http://service.example.com/" schemaLocation="DemoService.xsd"/>
    </xsd:schema>
</wsdl:types>

これがうまくいくことを願っています

于 2013-07-01T13:42:18.947 に答える
0

エンド ユーザーから実際のサービスの詳細を隠す必要がある場合は、WSO2 ESB で WSDL を公開することを避けることができます。

次に、ESB で定義されたプロキシ サービスを呼び出します。

これが役立つことを願っています。

ありがとう!

于 2013-06-28T03:51:37.433 に答える