Camel路由导致Missing依赖项错误

时间:2016-11-23 13:46:26

标签: apache-camel apache-karaf

我正在尝试将驼峰路由部署到我的karaf容器(在Spring DSL中):

<?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"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
    <bean id="milo-client" class="org.apache.camel.component.milo.client.MiloClientComponent">
        <!--<property name="enableAnonymousAuthentication" value="true"/>-->
    </bean>
    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route id="opctorest">
        <from uri="timer://simpleTimer?period=1000"/>
        <log message="Triggered Route: opctorest: Sensorreading body: ${body}"/>
        <to uri="milo-client:tcp://127.0.0.1:4840/freeopcua/server?namespaceUri=http://examples.freeopcua.github.io"/>
        <convertBodyTo type="java.lang.String"/>        
        <to uri="stream:out"/>
      </route>
    </camelContext>
</blueprint>

该路由的捆绑包未安装,但保留在&#34; GracePeriod&#34;状态。我修复了所有缺少的依赖项(我认为它确实如此),但我不明白这个消息:

  

捆绑251   ----------状态:GracePeriod蓝图11/23/16 2:08 PM缺少依赖项:   (及(objectClass的= org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace = http://camel.apache.org/schema/blueprint))

我可以做些什么来解决这种依赖?安装了camel-blueprint,就像白羊座一样。 Karaf是版本4.0.5。蓝图是2.16.3。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您将camel XSD网址添加到schemaLocation属性?

,该怎么办?
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
           xmlns:camel="http://camel.apache.org/schema/blueprint"
           xsi:schemaLocation="
               http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
               http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">

编辑:我正在评论,但这是一个很长的故事,所以就是这样。

我不是100%肯定,但<camelContext xmlns="http://camel.apache.org/schema/blueprint">告诉Blueprint使用哪个命名空间来验证XML的那部分。蓝图需要知道&#34;哪里&#34;查找该命名空间的架构(xmlns = XML N ame S 步伐),然后搜索{{1属性。
命名空间是标签&#39;前缀,例如在schemaLocation mythings 中是名称空间。通过使用<mythings:tag>属性,您基本上就是说#34;此处的所有内容都具有以下命名空间&#34;。

我意识到这是问题:

  

Bundle 251 ----------状态:GracePeriod Blueprint 11/23/16 2:08 PM缺少依赖项:(&amp;(objectClass = org.apache.aries.blueprint。 NamespaceHandler < /强>)(osgi.service.blueprint.namespace = <强> http://camel.apache.org/schema/blueprint ))

答案 1 :(得分:0)

似乎与Camel 2.16.3有某种关系。一旦我升级到2.18,一切都很好。 milo-client端点依赖于Camel 2.18。

谢谢大家的帮助!