将旧项目从jdk8移开,我需要修复jaxb。大多数答案都是针对旧版本的,而我希望将其修复到当前的版本,而且我还在为命名混乱/依赖( javax.xml / jakarta.xml )的地狱而挣扎。
我想我从Saaj-Impl1.5.1转移到了新的2.0.1,因为在启动的时候,仍然在搜索com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl
,而不是com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
,因为它在类路径上。
产生的信息是:
javax.xml.soap.SOAPException: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found
但我想不出该怎么阻止这件事。看来,库javax.xml.soap-api
寻找javax.xml.soap.SAAJMetaFactory
实现,但是服务加载器的配置文件不存在,因此默认情况下会出现。它不存在,因为类路径上的服务加载程序文件是jakarta.xml.soap.SAAJMetaFactory
而不是javax.xml.soap.SAAJMetaFactory
。我猜想jaxws-api带来了javax.xml.soap.api,而javax.xml.soap.api又发生了冲突。
我的后jdk8 8 jaxb依赖项是:
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>2.0.1</version>
</dependency>
但这并没有改变任何事情。因此,我尝试将jaxws-api替换为:
<dependency>
<groupId>jakarta.xml.ws</groupId>
<artifactId>jakarta.xml.ws-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>jakarta.xml.soap</groupId>
<artifactId>jakarta.xml.soap-api</artifactId>
<version>3.0.0</version>
</dependency>
但这只会让很多其他课程缺课。这真的很神秘也很令人费解。
有人能告诉我:
发布于 2022-05-04 15:41:54
我想我解决了它,但部分决议并不是要求最新的版本。我几乎让它与最新的库一起工作,但无法克服很少的冲突。因此,使用springboot父母2.6.6,我只能声明以下依赖项,这是我从springs依赖管理中获得的。但在我的故事中,最大的反派可能是jaxb2-maven插件,如果你不使用与其他版本同步的版本,似乎会带来一些依赖,这将导致混乱。下面的版本似乎与显示的依赖关系一起工作,不需要额外的依赖项。当我尝试在没有指定版本的情况下使用插件(从春季家长那里获得),它对我无效,因为我抱怨丢失了一些东西。
免责声明:我不相信以下的有效性,而它似乎正在工作。我没有找到任何可靠的来源,什么是有效的组合,也没有办法找到它自己。所以我就这么努力地调试了它,浪费了太多的cpu周期,seti@home可以找到至少两个外星人。
jaxb2插件
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
崇拜者:
<dependency>
<groupId>javax.activation</groupId>
<artifactId>javax.activation-api</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
</dependency>
https://stackoverflow.com/questions/72103568
复制相似问题