Apache camel 在IBM Liberty中使用blueprint作为Apache骆驼DSL来描述路由

Apache camel 在IBM Liberty中使用blueprint作为Apache骆驼DSL来描述路由,apache-camel,websphere-liberty,blueprint-osgi,Apache Camel,Websphere Liberty,Blueprint Osgi,我的目标是使用OSGi让Camel在IBMLiberty应用服务器下运行,并能够在Blueprint中描述DSL(域特定语言)路由。我正在取得进展,现在有了一个Liberty环境,安装了Camel并将其配置为OSGi捆绑包。当我以OSGi捆绑包的形式编写JavaDSL骆驼应用程序时,所有的工作都完全符合我的期望 我的最后一步是能够在蓝图中描述我的骆驼路线。为此,我创建了一个新的OSGi包,并定义了blueprint.xml,如下所示: <?xml version="1.0" encodin

我的目标是使用OSGi让Camel在IBMLiberty应用服务器下运行,并能够在Blueprint中描述DSL(域特定语言)路由。我正在取得进展,现在有了一个Liberty环境,安装了Camel并将其配置为OSGi捆绑包。当我以OSGi捆绑包的形式编写JavaDSL骆驼应用程序时,所有的工作都完全符合我的期望

我的最后一步是能够在蓝图中描述我的骆驼路线。为此,我创建了一个新的OSGi包,并定义了blueprint.xml,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:camelBlueprint="http://camel.apache.org/schema/blueprint"
    xsi:schemaLocation="http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint-2.14.1.xsd">

    <camelBlueprint:camelContext>
        <camelBlueprint:route>
            <camelBlueprint:from uri="file:c:/temp/in"/>
            <camelBlueprint:to uri="file:c:/temp/out"/>
        </camelBlueprint:route>
    </camelBlueprint:camelContext>

</blueprint>
不幸的是,这就是我现在被难倒和困住的地方。我相信IBMLiberty使用Equinox作为OSGi平台,而不是Karaf,但阅读文档时,我似乎明白ApacheAries是必需的(Liberty提供并使用ApacheAries),Karaf不是依赖项

我的测试包的MANIFEST.MF是:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OSGITest1
Bundle-SymbolicName: OSGITest1
Bundle-Version: 1.0.0.qualifier
Bundle-Blueprint: OSGI-INF/blueprint/*.xml
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Export-Package: kolban.osgitest
Import-Package: org.apache.camel;version="2.14.1",
 org.apache.camel.blueprint;version="2.14.1"

如果解析器看不到捆绑包,或者捆绑包(通常是蓝图)有问题,则会出现此消息。如果在删除蓝图时捆绑包解析为ok,那么您需要查看蓝图中可能存在的错误。如果是这种情况,我怀疑您没有在运行时启用Camel blueprint命名空间处理程序

我希望这有帮助


您好,格雷厄姆。

鉴于错误消息似乎相当普遍,是否有一种建议的跟踪设置或其他技术,我可以从中获得有关该消息的更多详细信息?我完全相信我可能没有正确设置环境,这可能意味着我需要骆驼技术专家的帮助。我的MANIFEST.MF在原始问题中被复制,最新Camel的完整分发版被放置在OSGi内部存储库中。。。所以如果遗漏了什么。。。还不确定会是什么。
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OSGITest1
Bundle-SymbolicName: OSGITest1
Bundle-Version: 1.0.0.qualifier
Bundle-Blueprint: OSGI-INF/blueprint/*.xml
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Export-Package: kolban.osgitest
Import-Package: org.apache.camel;version="2.14.1",
 org.apache.camel.blueprint;version="2.14.1"