ServiceMix异常(1):missing requirement [262.0] osgi.wiring.package;osgi.wiring.package=org.apache.camel

环境

  1. servicemix :6.1.0
  2. jdk:jdk1.8.0_191
  3. 项目中使用的camel版本:2.23.1
  4. servicemix中安装的camel版本:2.16.1

起初小编在开发的时候就直接在maven仓库上搜索了一个目前使用次数最多的版本2.23.1加到了项目依赖中,在部署的时候出现了以下的错误Unable to resolve 262.0: missing requirement [262.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.camel)(version>=2.22.0)(!(version>=3.0.0)))

异常日志如下:

2019-06-28 18:22:07,243 | WARN  | mix-6.1.0/deploy | fileinstall                      | 7 - org.apache.felix.fileinstall - 3.5.0 | Error while starting bundle: file:/D:/develop/apache-servicemix-6.1.0/deploy/web-service.jar
org.osgi.framework.BundleException: Unresolved constraint in bundle com.monk.demo.web-service [262]: Unable to resolve 262.0: missing requirement [262.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.camel)(version>=2.22.0)(!(version>=3.0.0)))
	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)[org.apache.felix.framework-4.2.1.jar:]
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2037)[org.apache.felix.framework-4.2.1.jar:]
	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0]

解决方案:

查询servicemix中安装的feature的camel版本,然后在你需要部署的项目中也对应的引用这个版本的jar

使用指令 feature:list | grep camel 查看当前servicemix中已安装的camel-core版本,下图中圈出来的“X”表示是已安装的。

(PS:使用管道grep camel-core是因为当前环境中的camel相关feature太多,展示出来不是很方便的看出问题,故使用管道过滤了camel-core)

修改项目中的依赖。将项目中的camel版本修改为2.16.1,再次部署即可。

最后再啰嗦一句,在度娘和谷歌中搜到的解决办法,大都几乎是修改依赖的camel版本,目测估计是大佬根据错误提示信息转译成中文,去修改版本,按照错误日志中的错误信息,应该修改依赖的camel版本为2.22.0 ~ 3.0.0之间,可是小编尝试很n次之后,依然不行,╮(╯▽╰)╭

抽根小烟,换个思路就想着看一下services中的版本,将项目中版本切换成和环境的版本一样,应该问题不大吧。于是在尝试过后发现是可行的,但是只是小编的猜想而已,也找不到什么可以支持这种解决方案的文案,故这里强调一下,如果读者有发现更合理的解决方案,欢迎评论区下留言告知一下,因为在国内,度娘上与servicesmix相关的论坛帖子实在太少了,即使是谷歌也多不到哪儿去,希望可以帮助到需要用到servicemix的同道中人

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值