【问题标题】:SOAP to Rest Service Using AdapterSOAP 使用适配器休息服务
【发布时间】:2017-02-28 03:52:48
【问题描述】:

我有一个遗留项目,它公开了 SOAP 网络服务。现在我需要将它们转换为休息并相应地使用它。

我可以使用像 Jersey 这样的实现来使用这些肥皂服务,然后像 REST 一样发布吗?

【问题讨论】:

    标签: java web-services rest soap jersey-2.0


    【解决方案1】:

    这是处理遗留 API 时的常见问题。由于 REST 不是定义上的协议,因此您可以实现:

    • 协议桥接模式。这是一种常见的 SOA 模式,可通过使用桥接代理作为中介来帮助您在不同协议之间进行转换。代理持有转换逻辑。你可以找到more information here。大多数 ESB 和 EAI 中间件都提供这种桥接器。

    • 数据格式转换模式。它在数据格式之间进行转换,您可以使用它将 XML 转换为您正在使用的 REST 格式。您可以通过放入一些内部服务逻辑、服务代理或专用转换服务来实现它。 You can see more here.。您绝对可以使用 Jersey 来构建 REST Facade 并在内部从 XML 进行转换,或者在每个服务内部构建逻辑。

    这实际上取决于您的 API 的大小和您需要的解决方案的类型。对于少数服务,我会选择第二种方法——它更容易但耦合度更高,而如果我有很多服务,我会选择第一种方法,在我看来它可以更好地抽象转换逻辑,但它可能需要额外的中间件和努力.

    【讨论】:

    • 我的服务很少,想采用第二种方法。但是,您能否介绍一些使用 Rest Facade 到 SOAP 进行数据转换的示例。
    • @skanda,您问是否可以为此使用 Jersey - 是的,您可以。事实上,您可以使用任何框架来实现这一点。我提供的解决方案与技术无关,希望我的回答对您有所帮助。唉,根据您提出的相对广泛的问题,如果您需要的话,我无法提供具体的代码示例。如果您选择 Jersey,您可以实现一个新的 REST API,它使用 JAX-WS 使用现有的 SOAP API(请参阅此处的文档 docs.oracle.com/javaee/5/tutorial/doc/bnayn.html#bnayx)并根据某些模板或基于自定义逻辑转换每个服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多