在Weblogic 12c中部署javax.xml.stream.XMLInputFactory时出现问题

时间:2015-02-10 12:54:33

标签: spring spring-mvc war weblogic12c javax.xml

我正在尝试在Weblogic 12c中部署Web应用程序(.war格式)。 当我尝试部署它时,Weblogic会抛出以下错误:

java.lang.ClassCastException: weblogic.xml.jaxp.RegistryXMLInputFactory cannot be cast to javax.xml.stream.XMLInputFactory
Error weblogic.xml.jaxp.RegistryXMLInputFactory cannot be cast to javax.xml.stream.XMLInputFactory

我已经阅读了太多关于此错误的线程和“解决方案”,但没有人为我服务。

这是我的weblogic.xml:

<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
    <context-root>appName</context-root>
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    <resource-description>
        <res-ref-name>jdbc/testdb</res-ref-name>
        <jndi-name>jdbc/testdb</jndi-name>
    </resource-description>
</weblogic-web-app>

这些是我在pom.xml中的依赖项:

    <spring.version>3.1.1.RELEASE</spring.version>
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-core</artifactId>  
        <version>${spring.version}</version>  
    </dependency> 
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context</artifactId>  
        <version>${spring.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-webmvc</artifactId>  
        <version>${spring.version}</version>  
    </dependency>  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-orm</artifactId>  
        <version>${spring.version}</version>  
    </dependency>
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
        <version>2.1.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.2.11</version>
    </dependency>
    <dependency>
        <groupId>wsdl4j</groupId>
        <artifactId>wsdl4j</artifactId>
        <version>1.6.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ws.xmlschema</groupId>
        <artifactId>xmlschema-core</artifactId>
        <version>2.2.0</version>
    </dependency>

你可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:3)

我通过明确排除 spring-ws-core 传递的 stax-api 依赖关系解决了这个问题。请尝试以下方法:

<dependency>
  <groupId>org.springframework.ws</groupId>
  <artifactId>spring-ws-core</artifactId>
  <version>2.1.0.RELEASE</version>
  <exclusions>
    <exclusion>
      <groupId>javax.xml.stream</groupId>
      <artifactId>stax-api</artifactId>
    </exclusion>
  </exclusions>
</dependency>

然后,您只需要确保在使用应用程序时没有其他XML解析问题。

HTH, 本