java - 设置 WAR 中 jar 的优先顺序

标签 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 中的 MessageFactory?至少我认为可能需要这样做。

<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> 

最佳答案

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

关于java - 设置 WAR 中 jar 的优先顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751216/

相关文章:

java - 如何在 Java 中为 ServerSocketChannelImpl 重建 JDK JNI C 代码?

java - 我们需要覆盖哈希码方法吗?

java - 按键排序 map - 解释

java - RestTemplateBuilder 中的消息转换器重复?

java - Spring Cloud Sidecar 配置问题

java - 在java中创建itext pdf : Chinese not working when a service call is made from localhost but works fine when called from main method

java - 发布时未指定 gradle suproject 版本

java - Spring MVC/Rest - 返回标准响应

Java JNDI 查找名称兼容 Tomcat 和 Weblogic