WebMethods 内で Java サービスとして動作する Axis2 ベースの ws コンシューマを取得する必要があるシナリオに陥りました。ws コンシューマーを最初に netbeans に実装して、それが機能するかどうかを確認したので、必要な jar の最小量は次のとおりであることがわかりました。
[ xmlschema-1.4.7.jar, apache-mime4j-core-0.7.2.jar, axiom-api-1.2.13.jar, axiom-impl-1.2.13.jar, axis2-adb-1.6.2.jar 、axis2-kernel-1.6.2.jar、axis2-transport-http-1.6.2.jar、axis2-transport-local-1.6.2.jar、commons-codec-1.3.jar、commons-httpclient-3.1.jar 、commons-logging-1.1.1.jar、httpcore-4.0.jar、mail-1.4.jar、neethi-3.0.2.jar、wsdl4j-1.6.2.jar]
これらの jar ファイルを IS/packages/{package_name}/code/jars フォルダーにアップロードしました。リクエストを送信してレスポンスを処理するJavaサービスを実行しようとすると、次の例外が発生します。
java.lang.reflect.InvocationTargetException: org.apache.axiom.om.OMFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory;
IS エラー ログ ファイルから、実際のエラー メッセージは次のようになっていることがわかりました。
org.apache.axiom.om.OMFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory; 原因: java.lang.reflect.InvocationTargetException: null 原因: java.lang.NoSuchMethodError:org.apache.axiom.om.OMFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory;
プラットフォームは Linux 環境の WebMethods 8.2 です。JDK バージョンは 1.6.0_32 で、WebMethods の下のアプリケーション サーバーは Jetty です。