在WAR中设置Jars的优先顺序

时间:2014-09-09 18:13:58

标签: java spring weblogic classloader war

我收到以下错误:

com.sun.xml.messaging.saaj.soap.MessageFactoryImpl cannot be cast to javax.xml.soap.MessageFactory

有没有办法强制使用saaj-api中的MessageFactory而不是javaee-api中的那个?至少我认为可能需要做的事情。

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.messaging.saaj</groupId>
    <artifactId>saaj-impl</artifactId>
    <version>1.3.15</version>
</dependency>
<dependency>
    <groupId>javax.xml.soap</groupId>
    <artifactId>saaj-api</artifactId>
    <version>1.3.5</version>
</dependency>

<prefer-application-packages>
    <package-name>javax.xml.soap.*</package-name>
    <package-name>javax.xml.ws.*</package-name>
    <package-name>com.sun.xml.messsaging.saaj.*</package-name>
</prefer-application-packages> 

1 个答案:

答案 0 :(得分:1)

一般来说,您不希望在您的war / ear文件中打包API,因为它们应由应用程序服务器提供。我会将范围设置为在这两个api依赖项上提供,并从那里开始工作。