我正在尝试使用Karaf来托管REST服务。我正在使用4.0.0版本的M2(因为我在我的原型中很早)。根据我拼凑的内容,为了托管REST服务,我可以使用Karaf功能来安装http和cxf功能。
到目前为止我做了什么......
feature:repo-add mvn:org.apache.cxf.karaf/apache-cxf/3.0.4/xml/features
- 没有错误,我可以在我的mvn repo中看到xml feature:install http
- 这有效,我可以看到正在运行Jetty代码的证据feature:install cxf
- 此操作失败我在控制台中收到此消息
karaf @根()>功能:install cxf执行命令时出错:无法执行 解析root:缺少需求[root] osgi.identity; osgi.identity = CXF-HTTP-码头;键入= karaf.feature;版本= 3.0.4 [由:无法解析cxf-http-jetty / 3.0.4:丢失 要求[cxf-http-jetty / 3.0.4] osgi.identity; osgi.identity = org.apache.cxf.cxf-RT-传输-HTTP-码头; 键入= osgi.bundle;版本= “[3.0.4,3.0.4]”;分辨率:=强制 [由:无法解决 org.apache.cxf.cxf-rt-transports-http-jetty / 3.0.4:缺少要求 [org.apache.cxf.cxf-RT-传输-HTTP-码头/ 3.0.4] osgi.wiring.package; 滤波器:= “(!及(osgi.wiring.package = org.eclipse.jetty.continuation)(版本> = 7.6.0)((版本> = 8.2.0)))”]]
如果我查看那里的软件包,我可以在安装http时看到我系统中的org.eclipse.jetty.continuation软件包
2015-05-08 09:29:02,928 |信息| pool-40-thread-1 | FeaturesServiceImpl | 6 - org.apache.karaf.features.core - 4.0.0.M2 | org.eclipse.jetty.continuation / 9.2.7.v20150116
所以,它的版本是9.2.7。如果我在安装cxf时理解错误,那么它需要一个版本>> = 7.6.0而不是> = 8.2.0。
是否有可以与CXF一起使用的HTTP服务版本?我对卡拉夫很新,所以我不确定如何指定旧版本。谢谢你的帮助。
答案 0 :(得分:0)
是的,这是一个已知问题。但不确定,如果卡拉夫和CXF人知道的话。我也遇到了Karaf 4.0.0的问题,我甚至无法安装http cxf。然后我回到了Karaf 3.0.3,事情对我有用。我也有这个顾虑! Apache Karaf项目/团队是否真的考虑自己的Apache CXF?嗯,我怀疑!
答案 1 :(得分:0)
Karaf 4.x配备Jetty 9(不是8)。因此,您必须更新您的CXF 版本(例如3.11)或降级到Karaf 3(提供 码头8)。