【问题标题】:Is spring integration is suited for enterprise application integration?spring 集成是否适合企业应用程序集成?
【发布时间】:2016-02-24 15:37:26
【问题描述】:

我们正在设计一个 Java 中间件 Web 应用程序,类似于 ESB,例如 IBM 消息代理或 mule。
我们有很多 Oracle EBS 接口(soap web 服务),现在 salesforce CRM 想通过中间件应用程序调用 EBS 接口。 Slaesforce CRM通过rest json调用中间件,中间件通过SOAP webservice调用EBS。下面的图片可以帮助您了解我的意思。 我们用 Spring Integration 设计了很多天的中间件。但我们发现很难做到这一点。我们仍然需要为每个 EBS 接口(每个 wsdl 都有一个 jar 文件)生成一个 jar 文件(通过 CXF),并通过传统的 Web 服务方式调用 EBS 接口。 我们不想为每个 EBS 接口生成 webservice 客户端 jar 文件。 spring 集成是否适合这个(不为每个 WSDL 生成 jar 文件,只是一些配置或没有太多编码)?如果没有,您能推荐其他产品吗? 非常感谢您。

【问题讨论】:

    标签: web-services soap spring-integration


    【解决方案1】:

    对于 SOAP 交互,Spring Integration 提供了完全基于 Spring WS 项目的 WS 模块。

    如果您可以使用 Spring Integration 的 <int-ws:outbound-gateway> 调用该 Oracle ESB 服务,我看不出有什么生成的理由。

    为此,您只需要知道为请求构建哪个 XML 以及从响应中解析哪个 XML。

    在我看来,为此目的,您了解服务 WSDL 并从 SOAP UI 进行调查就足够了。

    如果我是你,我会在 Spring 的时候忘记 CXF :-)。

    【讨论】:

    • 感谢 Artem 的回答。你的意思是我可以通过Spring WS调用Oracle EBS服务而不生成jar文件?但是Oracle EBS接口soap请求xml很复杂,有用的节点少,无用的节点多。
    • 正确。所以,我猜你可能真的有一些用于 useless 标签的 XML 模板,并使用相同的 Spring Integration 及其 XML 模块插入 useful
    【解决方案2】:

    API 网关是可以在这里使用的一种产品。通常,它充当客户端和应用程序之间的代理,但它也可以在 JSON 和 XML 之间进行转换,这在 REST 到 SOAP 转换中会发生。

    MuleESB,虽然不是网关也可以用于这个目的,看这个链接How to convert SOAP web service to REST web service in Mule

    【讨论】:

      【解决方案3】:

      这是我们自己做的。 我们用Java自己开发了中间件。 我们使用 java 和 freemarker 模板将 json 请求转换为所需的肥皂信封体。然后使用 apache httpclient 调用 web 服务(oracle EBS)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-04
        • 2016-01-08
        • 2014-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        相关资源
        最近更新 更多