我正在尝试用Apache Camel做一些“hello world”示例。只是一个简单的路线,作为OSGi捆绑部署到Apache Karaf。而且这很疯狂,有很多事情要学习,骆驼本身,与春天的融合,与OSGi和Karaf的整合......呃。
我正试图从这里开始遵循这个想法:http://www.andrejkoelewijn.com/wp/2008/10/19/simple-camel-dsl-osgi-bundle-example/。
我已经创建了bundle,包含FileRoute.java文件的软件包等,但是我无法生成有效的manifest.mf文件,它是由“maven的bundle plugin”生成的 - 所以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上下文的包,所以我认为好主意是通过“export package”从那里公开包,但它不起作用,驼峰包不能构建然后
我很遗憾:(我非常感谢帮助或提示。
谢谢!
答案 0 :(得分:1)
如果你使用Apache Camel 2.10或更好,那么Maven原型是开始一个新的Camel项目的好地方。我们有可以为spring-dm或OSGi蓝图创建基于OSGi的项目的原型。您选择了要使用的那个。然后该项目为OSGi做好准备,因为它设置了一个maven插件,为您生成所需的osgi内容。只有在更高级的情况下,您才需要调整此插件。
详见:http://camel.apache.org/camel-maven-archetypes.html
如果您使用Maven 3.0.x,那么只需键入
即可mvn archetype:generate
然后它以交互模式运行,然后键入camel以仅过滤camel archetypes。
然后选择原型的编号。例如,spring-dm将OSGi与Spring一起使用。