Apache camel 热部署驼峰路由时JAXB ClassNotFoundException com.sun.xml.bind.v2.ContextFactory

Apache camel 热部署驼峰路由时JAXB ClassNotFoundException com.sun.xml.bind.v2.ContextFactory,apache-camel,liferay,wildfly,Apache Camel,Liferay,Wildfly,是的,我知道,自从JAXB从JDK11中删除以来,有很多问题和答案。但这是具体的 我有一个Wildfly服务器(使用18.0.1和16.0.0进行了测试),运行时应用了Wildfly camel子系统11.0.1补丁。该修补程序安装Camel 2.25.0 部署和热部署(服务器启动时)骆驼路由工作正常! 直到我在同一台服务器上部署Liferay:-( 然后骆驼路线的热部署给了我恼人的感觉 [java.lang.ClassNotFoundException: com.sun.xml.bind.v2

是的,我知道,自从JAXB从JDK11中删除以来,有很多问题和答案。但这是具体的

我有一个Wildfly服务器(使用18.0.1和16.0.0进行了测试),运行时应用了Wildfly camel子系统11.0.1补丁。该修补程序安装Camel 2.25.0

部署和热部署(服务器启动时)骆驼路由工作正常! 直到我在同一台服务器上部署Liferay:-(

然后骆驼路线的热部署给了我恼人的感觉

[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory from [Module "org.apache.camel.spring" version 2.25.0...
例外

不管我是在JDK 11还是JDK 8上运行服务器!Liferay 7.3.2声称在两个JDK版本上都可以运行,所以我猜它与Liferay的构建方式有关。 阅读本文 JAXB主题非常复杂,远未得到解决

问题: 部署的应用程序如何破坏其他可用的类路径解析? 更重要的是: 如何修复它


我尝试从Liferay中删除有问题的两个JARJAXb-api.jar和jaxb-impl.jar。但这没有帮助。

结果表明,错误的根本原因是wildfly camel补丁的org.apache.camel.spring模块中缺少对com.sun.xml.bind的依赖关系

我归档了


看起来Liferay与此无关。因为理论上jboss模块应该分开部署。

结果表明,错误的根本原因是wildfly camel补丁的org.apache.camel.spring模块中缺少对com.sun.xml.bind的依赖关系

我归档了


看起来Liferay与此无关。因为理论上jboss模块应该将部署分开。

你的意思是:一旦部署Liferay,非Liferay应用程序就无法工作,即使它们以前也无法工作?或者你让一切都正常工作,只是没有Liferay?wildfly camel正常工作。热部署正常。当我部署Liferay时,Hot Deploy因我描述的错误而中断。您的意思是:一旦您部署Liferay,您的非Liferay应用程序就无法工作,即使它们以前也无法工作?或者您让一切都正常工作,只是Liferay没有工作?wildfly camel正在工作。热部署正在工作。当我部署Liferay时,热部署因我描述的错误而中断。