私の問題は、CXF と wsdl4j_1.6.2.jar が何か、おそらく axis-wsdl4j.jar と衝突することに関係しています。
私は読みました: Apache CXF クライアントの何が問題なのですか?
私のプロジェクトには、戦争に axis-wsdl4j.jar が含まれていません。また、管理者に Websphere を Parent Last に切り替えるよう依頼しました。私はまだこれを取得します:
[12/13/12 16:01:28:378 CST] 0000001b ServletWrappe E SRVE0068E: サーブレットのサービス メソッドの 1 つでキャッチされない例外がスローされました: CXFServlet。スローされる例外: java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: javax/wsdl/xml/WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;) Ljavax/wsdl /意味; org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage (AbstractFaultChainInitiatorObserver.java:116) で org.apache.cxf.phase.PhaseInterceptorChain.doIntercept (PhaseInterceptorChain.java:322) で(ChainInitiationObserver.java:122) org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) org.apache.cxf.transport.servlet で。267) com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) で com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) で.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) com.ibm.io.async.AsyncChannelFuture $1.run(AsyncChannelFuture.java:205) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473) 原因: org.apache.cxf.interceptor.Fault: javax/wsdl/xml/ WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition; org.apache.cxf.service.invoker.AbstractInvoker で。createFault(AbstractInvoker.java:162) org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128) org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167) org .apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94) org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage( ServiceInvokerInterceptor.java:94) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) ... 26 以上原因: java.lang.NoSuchMethodError: javax/wsdl/xml/WSDLReader.readWSDL(Ljavax /wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition; org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.
プロジェクトは Maven によってビルドされ、Continuum のみを介して Websphere にデプロイされます。すべての設定はリクエストによって変更されます。アプリケーションは、ローカルの Tomcat で完全に実行されます。
編集:これは最終的に次の方法で修正されました:
- wsdl4j.jar を /usr/WebSphere/AppServer/appLibs/APPNAME ディレクトリーにコピーします。
- 前の Chmod 775。
- Websphere 管理コンソール、環境 (左側)、共有ライブラリーで、上記の APPNAME という名前のコンテナー全体の共有ライブラリーを定義します。
- jar を共有ライブラリのクラスパスに追加します。
- サーバー (左側)、APPNAME Java、プロセス管理、クラス ローダー、および「最初にアプリケーション クラス ローダーでロードされたクラス」を確認します。
- クラスローダーをクリックして、共有ライブラリをそれに割り当てます。
- サーバーを再起動する