gpt4 book ai didi

maven - 找不到命名空间的 DestinationFactory - 使用 Jetty 创建 CXF 的 super JAR

转载 作者:行者123 更新时间:2023-12-02 03:12:21 26 4
gpt4 key购买 nike

我想为基于 CXF 的应用服务器创建一个 super JAR。我想使用 java -jar 从命令行运行服务器。在 IDE 中,我可以运行主类 com.connexta.desertcodecamp.Server,但我没有正确创建 uber jar。

当我运行命令 java -jar server-1.0-SNAPSHOT.jar 时,我得到了

org.apache.cxf.service.factory.ServiceConstructionException
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:215)
at com.connexta.desertcodecamp.Server.<init>(Server.java:19)
at com.connexta.desertcodecamp.Server.main(Server.java:33)
Caused by: org.apache.cxf.BusException: No DestinationFactory was found for the namespace http://cxf.apache.org/transports/http.
at org.apache.cxf.bus.managers.DestinationFactoryManagerImpl.getDestinationFactory(DestinationFactoryManagerImpl.java:122)
at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:79)
at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:63)
at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:170)

这是指向 POM 文件(和 GitHub 存储库)的链接: https://github.com/ahoffer/desert-code-camp/blob/master/server/pom.xml

其他帖子引用了缺少的依赖项,cxf-rt-transports-http,但我将其作为 POM.xml 中的依赖项。

最佳答案

解决方案在这里:apache camel - packaging an executable jar在这里:Missing cxf.xml? Fails in maven, works in Eclipse .

将此转换器和魔法资源添加到 maven shade 插件的配置部分修复它:

<transformer org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/cxf/bus-extensions.txt</resource>
</transformer>

资源由插件生成;没有必要创建它

关于maven - 找不到命名空间的 DestinationFactory - 使用 Jetty 创建 CXF 的 super JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com