1

新しいプロキシサービスを定義するときにレジストリからWSDLファイルを参照するにはどうすればよいですか?WSO2ESBを使用しています。

Q1:localEntry要素を使用してプロキシサービスでWSDLを定義できますか?例えば:

localEntry key = "my_wsdl" src = "file:/wsdl/MyServiceSOAP.wsdl"

以前に管理コンソール>コレクションの追加>「wsdl」の作成、および リソースの追加>MyServiceSOAP.wsdlを使用したことがある場合。「src」値に問題があります。両方とも

"/wsdl/MyServiceSOAP.wsdl"
"wsdl / MyServiceSOAP.wsdl"
動作しない。ドキュメントに従いますが、WSDLをレジストリにアップロードする方法が示されていません。

Q2: MyServiceSOAP.wsdlがMyService.wsdlをインポートした場合はどうなりますか?MyService.wsdlにもリソースの追加を使用する必要がありますが、プロキシをコンパイルするために他に何かする必要がありますか?

4

2 に答える 2

4

ここでレジストリを参照していると思います。各製品のレジストリスペースには、3つの主要なパーティションが含まれています。

  • ローカル
  • 構成
  • ガバナンス

ESBのレジストリスペース 構成レジストリには、同じ製品の複数のインスタンス(ESBノードのクラスターなど)間で共有できる製品固有の構成が含まれています。したがって、Configレジストリ内にWS​​DLコレクションを作成し、次のように参照できます。

"conf:/wsdl/MyServiceSOAP.wsdl"

リソースをレジストリにアップロードすることで、プロキシサービスを作成するときにも簡単にリソースを選択できます。 ここに画像の説明を入力してください

リソースを「file:/wsdl/MyServiceSOAP.wsdl」と呼ぶことができるのは、それらがローカルファイルシステムの「wsdl」という名前のディレクトリ内にある場合だけだと思います。ところで、エラーメッセージについて..ESBサーバーログを見ると、存在しないファイルを参照してプロキシを更新しようとすると、次のエラーが表示されます。

Caused by: java.io.FileNotFoundException: ./wsdl/MyServiceSOAP.wsdl (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileInputStream.<init>(FileInputStream.java:79)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
    at org.apache.synapse.config.SynapseConfigUtils.getObject(SynapseConfigUtils.java:197)
    ... 46 more
于 2012-03-15T10:20:35.490 に答える
2

ブログから簡単な解決策を見つけました。私のシナリオでは、xsdをインポートする別のwsdlをインポートするwsdlがありました。実際の構造は2番目のwsdlにありました。

元のwsdlの行をインポートします。

    <wsdl:import namespace="http://www.somedomain.com/interface/v1_0" location="service_interface_1_0.wsdl"/>

2番目のwsdlの行をインポートします。

    <xsd:import namespace="http://www.somedomain.com/data/v1_0" schemaLocation="data_types_1_0.xsd"/>

プロキシに必要なxml:

    <publishWSDL key="file_required_service_1_0.wsdl">
  <resource location="service_interface_1_0.wsdl"
            key="file_service_interface_1_0.wsdl"/>
  <resource location="data_types_1_0.xsd"
            key="file_data_types_1_0.xsd"/>

「file_required_service_1_0.wsdl」などのローカルエントリがあり、元のwsdlファイルとxsdファイルを含むローカルエントリという名前が付けられています。

于 2015-08-25T11:24:13.207 に答える