0

Spring Webサービス(jax-ws)アプリケーションをデプロイしようとすると、Jbossおよびxercesjarファイルとの競合があることがわかりました。これはエラーです。

09:58:50,852 ERROR [JBossContextConfig] XML error parsing: context.xml
org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser

いくつかのテクニカルフォーラムを通過した後、これがjbossサーバーのバグであることがわかりました。これがそのバグレポートへのリンクです。xercec.jarをlibフォルダーから削除すると表示されます。

しかし、xerces jarを削除すると、アプリケーションがapplicationContext.xml内の特定のxml sysntaxesを解析するために、xcerces jarが必要であると考えるため、サーバーはスプリングエラーを出します。これがスプリングエラーです。

09:14:38,175 ERROR [org.springframework.web.context.ContextLoader] Context 
initialization failed: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 
'com.sun.xml.ws.transport.http.servlet.SpringBinding#0 defined in ServletContext 
resource [/WEB-INF/applicationContext.xml]: Cannot create inner bean '(inner bean)'
of type [org.jvnet.jax_ws_commons.spring.SpringService] while setting bean property 
'service'; nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name '(inner bean)': FactoryBean threw exception on object
creation; nested exception is java.lang.LinkageError: loader constraint violation: when     
resolving field "DATETIME" the class loader (instance of 
org/jboss/classloader/spi/base/BaseClassLoader) of the referring class, 
javax/xml/datatype/DatatypeConstants, and the class loader (instance of <bootloader>) 
for the field's resolved type, loader constraint violation: when resolving field 
"DATETIME" the class loader

次のxmlsysntaxが含まれています。

<wss:service>
        <ws:service bean="#helloWs"/>
</wss:service>

jboss xmlパーサーがスプリング内部Beanの作成に関係するこの特定のxmlsysntaxを識別できなかったため、サーバーはそのスプリングエラーをスローすると思います。(bean = "#helloWs")。したがって、既存のJbossxmlパーサーをxercessxmlパーサーでオーバーライドするとうまくいくと思います。私の質問はそれをどのように行うかです。この問題に関する代替案も歓迎します。

よろしくお願いします。

参考:同じアプリケーションはGlassfishサーバー3.xでスムーズに(変更なしで)動作します:)しかし、これをJbossサーバーにデプロイする必要があります。

4

1 に答える 1

1

私もこの問題に直面しました。私の場合、解決策はアプリケーションからXercesを削除することでしたが、それが必要です。

「アプリケーションからxercerを削除する」ための代替ソリューションは、ここにあります。

于 2012-06-27T07:07:04.937 に答える