0

我真的被困在如何将我的业务应用程序集成到 Fuse ESB 上。特别是 - Web 服务功能。我有一些问题 -

1) 我可以将 Fuse ESB 中的 blueprint.xml 作为 Web 服务“包装”并从业务应用程序中调用它吗?

2) 如何使用 Fuse ESB 将现有功能公开为 Web 服务并调用它们?

感谢任何有 Fuse 知识的人可以帮助我!

4

1 回答 1

2

好吧,这是一种方法。这可能不是最好的方法(欢迎评论...),但无论如何都是这样。

您显然拥有 Web 服务的 wsdl,以及执行业务逻辑的代码。

  1. cxf-codegen-plugin使用(for generated-sources) 和maven-bundle-plugin(for bundle config 和 OSGI 连接)为您的 Web 服务创建一个 maven 模块

  2. 在您blueprint.xml定义中,您生成的端点接口类<camel-cxf:cxfEndpoint id="abc" ...在哪里。serviceClass

  3. <camel:camelContext id="abc" ...>用 a定义 a来<camel:routeBuilder ref="xyz"/>引用您定义的扩展 bean RouteBuilder

  4. 现在我们在扩展类中工作RouteBuilder。然后,该configure()方法应设置与 Web 服务中的每个操作相对应的骆驼路由。使用 java fluent 构建器语法

下面是一个流畅的构建器语法示例:

    from("direct:myOperation")
            .routeId("myOperation")
            .onException(SomeException.class).doSomething().doSomethingElse();
            .validate(/* an expression */)
            .beanRef("myBusinessLogicBean", "someMethod")
            .convertBodyTo(MyResult.class)

基本上,我们把路由层改写成骆驼路由,业务逻辑调用via beanRef-bean,它的依赖(比如datasources/dao's or persistence.xml)在blueprint.xml中配置.

您可以在流利的构建器语法中做一些非常好的事情 - 只需 googlecamel cxf并浏览许多示例。您还可以访问所有 EIP(企业集成模式)。

您要做的最后一件事是定义feature.xml使用<bundle>并定义正确<feature>依赖关系的 a (例如camel-cxfcamel-jpa等)。

我希望这有助于您入门。

于 2013-06-04T07:32:21.640 回答