0

我正在尝试使用 Apache Camel 做一些“hello world”示例。只是一个简单的路由,作为 OSGi 包部署到 Apache Karaf。而且很疯狂,一次要学的东西太多了,Camel 本身,与 spring 的集成,与 OSGi 和 Karaf 的集成……呃。

我试图从这里遵循这个想法:http ://www.andrejkoelewijn.com/wp/2008/10/19/simple-camel-dsl-osgi-bundle-example/ 。

我已经创建了包、带有 FileRoute.java 文件的包等,但我无法生成有效的 manifest.mf 文件,它是由“bundle plugin for maven”生成的 - 所以 POM 文件用于生成清单文件.

清单文件中有什么问题,与导入包一致:

Import-Package: com.company.foo.bar.demo;version="0.1",org.apache.ca
 mel.builder;version="2.10",org.apache.camel.model;version="2.10",org.
 apache.commons.logging

出现错误:“没有可用的捆绑导出包 'org.apache.camel.builder'”(和 .model 包)。

好吧,我知道问题出在哪里,但是……如何为捆绑包公开这些包?

接下来我有另一个带有 Apache Camel 上下文的包,所以我认为好主意是通过“导出包”从那里公开包,但它不起作用,然后无法构建骆驼包。

我很迷茫:(我非常感谢帮助或提示。

谢谢!

4

1 回答 1

1

如果您使用 Apache Camel 2.10 或更高版本,那么 Maven 原型是开始新 Camel 项目的好地方。我们有可以为 spring-dm 或 OSGi 蓝图创建基于 OSGi 的项目的原型。您选择了要使用的那个。然后该项目为 OSGi 做好了准备,因为它设置了一个为您生成所需 osgi 内容的 maven 插件。只有在更高级的情况下,您才需要调整此插件。

详见:http ://camel.apache.org/camel-maven-archetypes.html

如果您使用 Maven 3.0.x,那么它会容易得多,因为您只需键入

mvn archetype:generate

然后它以交互模式运行,然后键入 camel 以仅过滤骆驼原型。

然后选择原型的编号。例如,spring-dm 将 OSGi 与 Spring 一起使用。

于 2012-09-12T15:17:33.327 回答