Java で WS クライアントを作成しようとすると問題が発生します。
私が使用しているライブラリはapache-cxf 2.12です。これは古いバージョンですが、既に実行されている Spring 2.5.6 を使用する JBoss アプリケーションに Web サービスを追加したいので、このorg.apache.cxfバージョンは同じ spring バージョンを使用します。
しかし、問題は (非常に一般的であり、maven、netbeans、および apache-cxf に関連していることはわかっています)
クライアント プロジェクト (maven プロジェクト) を netbeans から実行すると、問題なく動作します。このクラスをスクリプト (ボット Windows と Linux) で実行しようとすると、次のエラーが表示されます。
「次のエラーで呼び出しが失敗しました: org.apache.cxf.ws.policy.PolicyException: ポリシーの代替手段のどれも満たすことができません。」
Java のバージョンは同じです。すべての依存関係の jar ファイルを lib ディレクトリにコピーし、%classpath% に追加しました。
では、サンプル プログラムを maven org.codehaus.mojo:exec-maven-plugin:1.2.1:execで実行すると機能し、srcipt で実行すると機能しないという違いは何ですか? (すべての依存関係、Java バージョンなどを確認しました ...)
JAX-WS o JCE (Java Cryptography Architecture) の初期化に関連しているに違いないと思います。
java.exe の実行時に %classpath maven が作成しているものを確認する方法はありますか?
動作する Maven スクリプト:
JAVA_HOME=D:\\LOCAL\\Java\\jdk1.5.0_15
D:\\LOCAL\\apache-maven-2.0.9\\bin\\mvn.bat
-Dexec.classpathScope=runtime
-DskipTests=true
"-Dexec.args=-Djavax.net.debug=all -classpath %classpath es.webservice.aaTest TESTFILE"
-Dexec.executable=D:\\LOCAL\\Java\\jdk1.5.0_15\\bin\\java.exe
-Dmaven.repo.local=D:\\bsrepo\\.m2 process-classes
org.codehaus.mojo:exec-maven-plugin:1.2:exec
ありがとう