我为专有产品创建了一个组件(使用maven archetype generate)。它似乎工作得很好(uri参数到字段的自动映射简直太棒了)。现在我阅读about Annotations,如@UriParam
来优化生成的maven站点(我还注释了Endpoint:@UriEndpoint(scheme = "myScheme")
)。在同一页面上,我读到最好从UriEndpointComponent
扩展为此我必须在组件中添加构造函数:
public mySchemeComponent(final Class<? extends Endpoint> endpointClass) {
super(endpointClass);
}
但是没有停止工作: Pro ...因为无法解析端点:myScheme:...由于:无法自动创建组件:myScheme
那么如何正确扩展UriEndpointComponent
或者是否有使用此示例?我发现只有this,但这也是“仅”扩展DefaultComponent。
答案 0 :(得分:0)
Camel使用服务查找器模式来定位新添加的组件。
支持自动发现组件添加文件 META-INF / services / org / apache / camel / component / FOO其中FOO是URI 组件的方案以及在组件上创建的任何相关端点 飞。后一个文件应包含组件的定义 类。例如,如果您的组件是由实现的 com.example.CustomComponent类,服务文件应该包含 以下行 -
class=com.example.CustomComponent
。
答案 1 :(得分:0)
我自己找到了一个例子(间接链接自here):
Trick是提供默认构造函数:
public TimerComponent() {
super(TimerEndpoint.class);
}
就我而言:
public mySchemeComponent() {
super(mySchemeEndpoint.class);
}
这样就可以了。