2

私は 2 つの Web サービスを持っていますが、クライアントでテストするとどちらも問題なく動作します。しかし、別の Web サービスから 1 つの Web サービスへのポートを構築しようとすると、JBOSS が爆発していくつかの例外が発生します。

クラス pt.ist.anacom.shared.security.SecurityInitListener のリスナー インスタンスにコンテキスト初期化イベントを送信中に例外が発生しました: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: サービスの作成に失敗しました。

のせいで

org.apache.cxf.service.factory.ServiceConstructionException: サービスの作成に失敗しました。

のせいで

javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration を org.apache.xerces.xni.parser.XMLParserConfiguration にキャストできません

のせいで:

java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration を org.apache.xerces.xni.parser.XMLParserConfiguration にキャストできません

したがって、Web サービス A と Web サービス B があります。Web サービス A を展開し、Web サービス B の contextlistener に次を追加します。

org.stubs.WebServiceA_Service service = new org.stubs.WebServiceA_Service(); // EXPLODES HERE
org.stubs.WebServiceA web = service.getWebServiceAPort(); //never runs this line, crashes before

両方の Web サービスが最初に実装されます (ボトムアップ?)。つまり、WebService クラスを定義し、それをデプロイし (JBOSS は自動的に wsdl を生成します)、それを消費します。

テストクライアントからwebserviceAにアクセスすると正常に動作しますが、WebServiceBからアクセスしようとするとうまくいきません。

私はすでにこれで数日を失い、できる限りのことをほとんど試しました..だから、どんな助けも大いに感謝しています。

4

1 に答える 1

1

サーバークラスパス上のxercesライブラリとWebサービスインスタンスに含まれるものとの間でバージョンが競合するという問題で、WebサービスをWebLogicサーバーにデプロイする際に複数のケースで同じ問題を経験しました。

1 つのシナリオでは、解決策は、xerces ライブラリを Web サービス アプリケーションに含めないようにすることでした (Maven pom で xerces ライブラリのスコープが「提供されている」と示されています。それがエンジンである場合)。もう 1 つの解決策は、(weblogic の) フィルタリング クラスローダー機能を使用して、サーバーの実装に対してアプリケーションに含まれる xerces ライブラリを使用するようにサーバーに指示することでした。

あなたの問題に基づいて、jboss でこの機能を探し、次の記事を見つけました: http://www.mastertheboss.com/jboss-application-server/223-solving-jboss-5-classloading-issues.html

うまくいけば、これは役に立ちます...

于 2012-05-08T23:26:47.643 に答える