2012-03-15 16 views
1

新しいプロキシサービスを定義するときにレジストリからWSDLファイルを参照する方法はありますか? WSO2 ESBを使用しています。WSO2でレジストリにアクセスする方法ESB

Q1:は、私は私のプロキシサービスでWSDLを定義するためにlocalEntry要素を使用することはできますか?例えば:私は以前管理コンソール>はコレクションを追加使用していると仮定すると

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

> "WSDL" を作成し、リソース> MyServiceSOAP.wsdlを追加します。 "src"の値に問題があります。

"/wsdl/MyServiceSOAP.wsdl"
"wsdl/MyServiceSOAP.wsdl"
の両方が動作しません。私は the documentationに従っていますが、WSDLをレジストリにアップロードする方法を示していません。

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

+0

プロキシサービスファイルを変更して安全にクリックするたびにエラーメッセージを表示することはできません。「localEntry」ファイルが消えてしまいます。管理コンソールがコンパイルエラーを処理する方法がわかります。 –

答えて

4

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

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

Registry Space in the ESB 構成レジストリは、同じ製品の複数のインスタンス間で共有することができる製品の具体的な構成(例えばESBノードのクラスタ)が含まれ。ですから、レジストリにリソースをアップロードすることで...

"conf:/wsdl/MyServiceSOAP.wsdl" 

をコンフィグレジストリ内のWSDLのコレクションを作成したいと、それを参照することができ、あまりにもプロキシサービスを作成するときに、あなたはそれらを簡単に選ぶことができます。

ローカルファイルシステムの「wsdl」という名前のディレクトリ内にある場合に限り、リソースを「file:/wsdl/MyServiceSOAP.wsdl」として参照できると思います。 BTW、エラーメッセージについて.. 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 
+2

ありがとうございます。私は "conf:"が "/ _system/config"のショートカットであることを知らなかった。私は今私のリポジトリのファイルを見ることができます。 –

+0

私は現在、publishWSDL要素でWSDLを使用しようとしていますが、「定義されたWSDLを検出できません」というエラーが表示されます。次の構文が正しいかどうかを確認してください: 'publishWSDL key =" conf:/wsdl/MyServiceSOAP.wsdl "key =" standard.wsdl "publishWSDL' –

+1

遅く返事を申し訳ありません。私はあなたのコメントを見逃していた。 – keheliya

2

私はブログからのそれのための簡単な解決策が見つかりました:私は、XSDをインポートし、別のWSDLをインポートしたWSDLを、持っていた私のシナリオでは を。実際の構造は2番目のwsdlにありました。オリジナルのWSDLの

インポートライン:第二のwsdlで

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

インポートライン:

<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"/> 

:プロキシ上

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

必要なXML私はローカルenを持っています元のwsdlおよびxsdファイルを含むローカルエントリという名前の "file_required_service_1_0.wsdl"などを試行します。

関連する問題