【发布时间】:2016-08-28 23:58:32
【问题描述】:
我想为基于 CXF 的应用程序服务器创建一个 uber 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 中将其作为依赖项。
【问题讨论】:
-
你确定你有它在组合罐子里吗? 你是如何组合这些罐子的?
-
@bmargulies 我知道的不够多,无法回答这个问题。我不知道在这种情况下组合意味着什么。我将 cxf-rt-transports-http 作为 maven 依赖项包含在内。我假设所有依赖项都会进入阴影 JAR。
标签: maven cxf embedded-jetty uberjar