1

JAX-WS サーバーのクライアントとして機能するアプリケーションがあります。webappswar を tomcatディレクトリに配置してアプリケーションを直接デプロイすると (ホット デプロイを行った場合でも)、接続は正常に機能します。ただし、デプロイを解除してから、Tomcat マネージャーを使用して (自動化されたスクリプトから) アプリケーションを再デプロイすると、接続を確立しようとするたびに以下の例外がスローされます。

Caused by: java.lang.NullPointerException
        at com.ctc.wstx.util.SymbolTable.copyArrays(SymbolTable.java:574)
        at com.ctc.wstx.util.SymbolTable.findSymbol(SymbolTable.java:403)
        at com.ctc.wstx.sr.StreamScanner.parseLocalName(StreamScanner.java:1770)
        at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2914)
        at com.ctc.wstx.sr.BasicStreamReader.handleRootElem(BasicStreamReader.java:2093)
        at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2073)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
        at com.sun.xml.internal.ws.util.xml.XMLStreamReaderFilter.next(Unknown Source)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.next(Unknown Source)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextContent(Unknown Source)
        at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextElementContent(Unknown Source)
        at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.hasWSDLDefinitions(Unknown Source)
        at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
        at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
        at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
        [... continues into application specific code calling the service ...]

この投稿は、同様の問題を抱えている誰かとの検索でここに表示されましたが、現時点では実際にはオプションではない spring-ws を使用する以外に解決策はありませんでした。

以前にこれに遭遇し、問題を解決できた人はいますか? ここで何が起こっているのか、Tomcatマネージャーを介した展開を、ファイルを.xmlに配置することによる展開とは異なるものにすることに少し戸惑っていますwebapps

4

2 に答える 2

0

私もこの問題に遭遇しました。問題は、rt の同じクラスと競合する org.apache.cxf.jaxws.spi.ProviderImpl の実装を含むクラスパスで cxf-rt-frontend-jaxws-2.5.2.jar に依存していたことです。 JDK に付属する .jar。

cxf-rt-frontend-jaxws の以降のバージョンには、このクラスが含まれなくなりました。cxf-rt-frontend-jaxws-2.6.15.jar にアップグレードした後、問題は解決しました。

WAR がデプロイされるたびに、使用する ProviderImpl の実装をクラスローダーがランダムに選択するため、問題が断続的に発生することが予想されます。

于 2014-09-09T19:45:52.467 に答える