2011-12-21 9 views
0

Apache CXF 2.5.0、JDK 7およびEclipse Helios EEを使用してWebサービスクライアントを開発しています。 eclipseでWebサービスクライアントを実行すると、次のエラーが発生します。スレッド「メイン」javax.xml.ws.soap.SOAPFaultExceptionでポリシー#AddressingPolicyへの参照を解決できませんでしたエラー

例外:政策#AddressingPolicyへの参照を解決できませんでした。..

私は、クライアントを配備するために、これまでに、以下の手順に従ってきました。

  1. eclipse helios EEでjavaプロジェクトを作成し、プロジェクトにCXFランタイムを追加しました。

  2. Apache CXF 2.5.0の使用WSDL2Javaは、クライアント用のJavaクラス(ヘッダーを処理するための-exsh trueオプションを含む)を生成しました。クラスはEclipse srcディレクトリで生成されました。

  3. Webサービスを呼び出すためのクライアントクラスのmainメソッドを実装しました。

私は上記の例外を受け取ります。

私はWSDLをチェックしており、xml id = #AddressingPolicyの1つのPolicy Reference要素とxml id = #TlsPolicyのバインディング要素内の別のPolicy Reference要素があります。それぞれのポリシーは、wsp:Policy要素を使用してWSDLの最後にWSDLで与えられます。

WSDLは既に外部サービスとしてデプロイされており、クライアントの開発のために私に提供されているため、WSDLを変更することはできません。

Apache CXF 2.5.0でこれまでに同様の問題に直面した人は誰ですか?また、私が使用しているCXFのバージョンで問題になるかもしれないと感じています。 Apache CXF 2.5.0はWSDL内のローカルポリシー参照をサポートしていますか?

あなたの回答を感謝します。

答えて

0

私はちょうど同じ問題を抱えていました。私が見つけた修正は、WSDLを変更してxml:idの代わりにwsu:Idの参照を使用することでした。

<wsp:Policy wsu:Id="AddressingPolicy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <...> 
</wsp:Policy> 

あなたはWSDLを変更できないと言いましたが、これは真実ではないと思います。私が言及した変更は、ワイヤ上のSOAPリクエスト/レスポンスの内容を変更しないので、既存のWebサービスと相互運用できるはずです。

+0

ありがとうございました。私はこの変更を試み、あなたに知らせます。 – ShareNCare

+0

上記のWSDL変更を試しましたが、CXFによるサービス作成時に以前と同じエラーが発生します。これで、アドレス指定ポリシーのWSDLは次のようになります。 – ShareNCare

関連する問題