【问题标题】:Karaf development卡拉夫发展
【发布时间】:2012-03-13 22:28:40
【问题描述】:

我目前正在为 karaf 开发捆绑包并且有一些问题...

我写了一个基于 cxf 的 bundle/webservice,我尝试在 karaf 中部署它,但它无法启动该 bundle,因为它无法解析某些包,例如

org.osgi.framework.BundleException:捆绑包 org.springframework.aop [56] 中未解决的约束:无法解决 56.0:缺失 要求 [56.0] 包; (&(package=org.aopalliance.aop)(version>=1.0.0)(!(version>=2.0.0)))

所以这里有个问题,这个包依赖来自spring-aop(3.1.0.RELEASE),那么问题出在哪里呢?缺少什么依赖?我该如何解决这些问题?

在那种情况下,我并没有清楚地了解开发过程。我应该在部署中部署所有丢失的捆绑包吗?因为我想让第三方库与我开发的包分开。我必须部署哪些捆绑包?这是一个反复试验的过程吗?有没有一种通用的方法可以让 maven 做依赖项?

我发现了一个文件夹“system”并在文档上读到它是一个类似 maven 的存储库,是为了功能吗?

我有一个用于测试用例的 karaf,其中包含一些预部署的捆绑包,并将我的 web 服务捆绑包放入其中,但再次出现异常......

原因:java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

缺少什么依赖?

我已经阅读了关于骆驼和卡拉夫的教程,但它没有解释部署的东西,所以有人可以给我推荐一个好的教程吗?

谢谢! 克里斯

【问题讨论】:

  • 添加更广泛的标签以吸引更多潜在答案总是值得的 - 我添加了 OSGi 标签,因为您的一些查询不是特定于 Karaf 的

标签: osgi apache-karaf


【解决方案1】:

简答

向下滚动到引用“camel-cxf”的位置并运行两个命令 features:addurl 和 features:install。我觉得这会解决你所有的问题。


spring-aop

在 Karaf 控制台类型上:

exports | grep org.aopalliance.aop

我想你会看到这样的行:

XX org.aopalliance.aop; version=3.1.0.RELEASE

因此,虽然 spring-aop 包有正确的包,但它们是错误的版本,请求的范围是 >=1.0.0 和


部署/安装

您可以将捆绑包放入 ${karaf.home}/deploy 或使用控制台。

您可以通过以下方式从 Karaf 控制台安装 maven 包:

install -s mvn:groupId/artifactId/version/packaging/classifier

-s 开始捆绑包的位置,打包/分类器是可选的。

你可以在这里http://ebr.springsource.com/repository/app/ 找到很多 OSGi 就绪的 maven 依赖项 - 我快速浏览了一下,但是你的 spring aop 依赖项非常旧,你使用的是什么版本的 CXF?

阅读有关 Karaf 功能的信息 - 它们基本上是 XML 文件,列出了可以安装的捆绑包套件。对于部署大量捆绑包非常有用,它们可以安装到 maven 存储库中。

Karaf 中提供了一些标准功能,请尝试:

features:install war

这将为您提供一个码头网络容器,并且可以解决您的 ClassNotFoundException: javax.servlet.http.HttpServlet,只要它是正确的版本

Camel 也有一个 features 文件,它可能会对你的所有问题进行排序,试试这个:

features:addurl mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features
features:install camel-cxf

教程

有很多可用的,一些在 http://karaf.apache.orghttp://fusesource.com 上,但也可以看看 Karaf 发行版中的 PDF 手册。 始终注意信息可能已过时

【讨论】:

    【解决方案2】:

    请发布您的 MANIFEST.MF 文件。我想你没有提到 maven-bundle-plugin 依赖项中的标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多