Camel:org.apache.camel.ResolveEndpointFailedException:没有找到scheme的组件

时间:2014-09-09 17:12:08

标签: apache-camel

我有一个自定义的Camel组件打包在一个单独的jar中。正如这里所建议的那样:

http://camel.apache.org/how-do-i-add-a-component.html

我创建了一个文件META-INF / services / org / apache / camel / component / aq(aq是组件方案名称),包含:

class=<full class name>

一切正常当我独立运行测试程序时。但是,当我尝试将其部署到容器(servicemix,karaf)时,它无法解析组件方案名称:

org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route route7: Route(route7)[[From[aq:oprDequeuer]] -> [WireTap[properties:... because of Failed to resolve endpoint: aq://queue1 due to: No component found with scheme: aq

此外,当我明确注册组件时:

    CamelContext context = getContext();
    context.addComponent("aq", new AQComponent(context));

它工作正常,包括ServiceMix。

1 个答案:

答案 0 :(得分:0)

确保META-INF中的文件包含在JAR中。

如果缺少该文件,则无法自动发现该组件,这就是您的问题。在为OSGi构建组件时,可能felix bundle插件不知何故不包含该文件。

我建议仔细检查一下,如果包含该文件,请查看内置的JAR。