首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Camel - CXF:通用端点的客户配置

Apache Camel - CXF:通用端点的客户配置
EN

Stack Overflow用户
提问于 2016-01-11 00:50:05
回答 2查看 1.2K关注 0票数 2

我的项目中有许多WSDL(>100)文件(生成了许多WS java接口)。我想对cxf端点使用常规配置,而不是在camel xml配置文件中为每个ws配置许多端点。

代码语言:javascript
复制
<cxf:cxfEndpoint id="orderEndpoint"
    address="http://localhost:9000/order/"
    serviceClass="camelinaction.order.OrderEndpoint"/>

是否有其他方法可以配置camel cxf端点,而无需手动将其添加到每个ws的xml文件中?是否可以在生成的接口中(自动)使用一些camel注释?

EN

回答 2

Stack Overflow用户

发布于 2016-01-11 21:47:04

没有Camel注释可以自动发现类路径中的JAX-WS接口并将其加载为CXF端点。这对你的用例来说太特别了。

您可以做的是使用可编程的Spring配置在Spring注册表中注册端点,然后Camel使用该注册表解析端点。

创建一个类并使用@Configuration对其进行注释,并使其实现BeanDefinitionRegistryPostProcessor,以便获得一个回调以及一个允许您向注册表中添加新bean的BeanDefinitionRegistry。在这里可以找到一个例子:Spring - Programmatically generate a set of beans (answer 2)

现在您已经有了注册新bean的方法,您需要通过搜索类路径来查找JAX-WS端点。这个SO问题列出了几个替代方案:Find Java classes implementing an interface。既然你使用的是Spring,我建议你试试this one

您需要定义一种技术来以一种有意义且可预测的方式生成bean名称和URL,这样您就可以从Camel路由访问bean,并从外部访问端点。

不要忘记在Spring XML中启用<context:component-scan />来指示Spring在Java类中搜索组件。

附注:这不需要您使用Camel的Java DSL。您只需使用Java代码来内省类路径并动态地将适当的bean注入Spring注册表。

票数 1
EN

Stack Overflow用户

发布于 2016-01-11 03:17:47

您可以使用Java DSL (而不是Spring XML)以编程方式声明端点。有关示例,请参阅问题Apache Camel: RouteBuilder with CxfEndpoint

动态发现您的所有web服务是一个单独的问题,有许多不同的可能解决方案(例如命名约定、实现共享接口、注释处理)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34708107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档