首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析FuseESB和Jersey Servlet中的两个依赖链

解析FuseESB和Jersey Servlet中的两个依赖链
EN

Stack Overflow用户
提问于 2012-02-14 18:53:01
回答 1查看 3.3K关注 0票数 4

我正在尝试在FuseESB (基于apache serviceMix)中部署Jersey servlet,但是我得到了以下错误:

代码语言:javascript
复制
Error executing command: Unable to resolve module com.temp.myappserver [248.4] because it is exposed to package 'javax.ws.rs' from org.apache.servicemix.specs.jsr311-api-1.1 [139.0] and com.sun.jersey.jersey-core [274.0] via two dependency chains.

Chain 1:
  com.temp.myappserver [248.4]
    import: (&(package=javax.ws.rs)(version>=1.1.0)(!(version>=2.0.0)))
     |
    export: package=javax.ws.rs
  org.apache.servicemix.specs.jsr311-api-1.1 [139.0]

Chain 2:
  com.temp.myappserver [248.4]
    import: (package=com.sun.jersey.spi.container.servlet)
     |
    export: package=com.sun.jersey.spi.container.servlet; uses:=com.sun.jersey.server.impl.application
  com.sun.jersey.jersey-servlet [267.0]
    import: (package=com.sun.jersey.server.impl.application)
     |
    export: package=com.sun.jersey.server.impl.application; uses:=javax.ws.rs
  com.sun.jersey.jersey-server [265.0]
    import: (package=javax.ws.rs)
     |
    export: package=javax.ws.rs
  com.sun.jersey.jersey-core [274.0]

我知道为什么会出现这个错误--事实上,jersey-core jar清单导出javax.ws.rs和serviceMix依赖于它自己的implementation.Is,有没有办法解决这个问题,或者我需要将我的服务转换为CXF?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-15 18:49:25

您已经正确地分析了问题: Felix不能解决这种情况,因为有两个包提供包,com.sun.jersey.jersey-core不导入它(),而您自己的包想要导入一个特定的版本,这与com.sun.jersey.jersey-core提供的版本不同(因为该包不提供版本声明,它缺省为0.0.0,所以它不符合您的需求)。

那么,你能做什么呢?

最好的解决方案是让framework.

  • Since包提供正确的导入,而不是在其余的上强加自己的版本,这可能需要一段时间,你可以在你自己的导入中删除
  • 语句,让框架有机会连接到jersey-core包,而不是servicemix包。我知道这不是一个理想的情况,但这似乎是我们能做的最好的了。

有关使用约束的一般说明,请参阅Neil Bartlett's post on 'uses'

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9275604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档