10

Weblogic サーバーを 9 から 10.3.6 にアップグレードしています。ear アプリケーションをデプロイしようとしているときに例外が発生しました。

Caused By: java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
    at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:123)
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:89)
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:70)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
    at org.springframework.context.access.ContextSingletonBeanFactoryLocator.initializeDefinition(ContextSingletonBeanFactoryLocator.java:141)
    at org.springframework.beans.factory.access.SingletonBeanFactoryLocator.useBeanFactory(SingletonBeanFactoryLocator.java:384)
    at org.springframework.web.context.ContextLoader.loadParentContext(ContextLoader.java:341)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:195)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
    at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1868)

weblogic-application.xml の追加など、あらゆる種類のことを試しましたが、それでも機能しません。

<?xml version="1.0" encoding="UTF-8"?>
   <weblogic-application>
 <xml>
 <parser-factory>
    <saxparser-factory>
      org.apache.xerces.jaxp.SAXParserFactoryImpl
    </saxparser-factory>
    <document-builder-factory>
      org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
    </document-builder-factory>
    <transformer-factory>
      org.apache.xalan.processor.TransformerFactoryImpl
    </transformer-factory>
  </parser-factory>
</xml>

<prefer-application-packages>
 <package-name>org.apache.xerces.parsers.*</package-name>
</prefer-application-packages>
</weblogic-application>

私のweblogic.xmlには

<prefer-web-inf-classes>true</prefer-web-inf-classes>

これは私のpom.xmlの一部です:

<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.1</version>
<scope>runtime</scope>
</dependency>

助けてください。ありがとう!

4

2 に答える 2

14

私は自分の質問に答えます:

以下のリンクは、この問題を修正するきっかけになりました:

Java/Maven で「Xerces 地獄」に対処していますか?

基本的に、pom.xml の xml-api と xmlParserAPI のすべての依存関係を削除しました。問題は修正されました。根本的な原因は、クラスパスに javax ライブラリを含めてはならないため、ライブラリが Weblogic アプリ サーバーと競合することです。それが役に立てば幸い。

于 2013-11-17T23:26:19.667 に答える