【问题标题】:Create pass through java web service创建通过 java web 服务
【发布时间】:2017-09-07 18:54:53
【问题描述】:

我是新来的,我有一个关于 java web 服务的问题。

在工作中,一位客户告诉我们他有 2 个 Web 服务,A 和 C,基本上 A 通过 Web 服务向 C 发送数据,C 处理后返回响应。但是由于两者都有 https/http 不兼容,我们被告知要创建一个 B java web 服务,它将从 A (https) 接收数据并将其发送到 C (http)。现在我被告知的是,这个 B 将使用 WSDL 并将数据重新发送给 C,然后 B 将接收 C 的响应并将其发送回 A(基本上是通过 Web 服务)。

我是 Java Web 服务的新手,我一直在观看有关如何创建 Web 服务和 Web 服务客户端的视频,但我不确定类/servlet/服务的正确组合/关系是什么这个项目将需要。我不是想让你们做我的项目,我只是想要一些关于我需要的对象用途的基本知识。

【问题讨论】:

  • 为什么不直接设置 http 代理来引导 A 和 C 之间的流量呢?似乎 B webservice 将是一个矫枉过正。
  • Ngnix 将是一个很好的方法。
  • 我们已经做过类似的事情,但是我们使用了一个 servlet。根据经验,我可以说,你不想这样做。最好采用 tsolakp 提供的方法。获得相同或更好的结果的工作量要少得多。
  • SOAP 应该能够在 HTTP/HTTPS 上运行,它与刚刚加密的协议相同,因此客户端似乎并不能很好地理解/解释问题。您还在这里谈论服务编排,您不是在创建传递,而是在创建要公开的新服务,因此您可能还必须创建一个新的 WSDL。直通服务只需要一个代理。
  • 我同意 tsolakp 但他们现在运行的系统是第 3 方,所以我们不能干涉,现在他们建议我们创建一个网络服务来做这件事。谈到 Namphibian 的回答,我会检查 WSDLs

标签: java web-services servlets wsdl pass-through


【解决方案1】:

当您从客户端 A 调用 Web 服务 B 时,客户端 A 需要知道的只是 Web 服务 B。

现在 Web 服务 B 可以为客户端 A 做任何事情。它可以将请求转发到另一个服务,它可以访问数据库,它可以从文件中读取一些数据等。它所要做的就是在最后构建一个有用的响应此处理将发送回客户端 A。

所以只需在 Web 服务 B 中使用 Web 服务 C 来完成 Web 服务 B 提供给客户端 A 的接口契约。所有这些对客户端 A 都是透明的。客户端 A 不会知道 Web 服务 B 是如何得出最终响应的任何信息发回给客户 A。

您需要创建的两个工件是。

  1. 实现 Webservice B(可以在内部调用 Webservice C 来完成其工作)
  2. 为 Web 服务“B”实现一个 Web 服务客户端“A”(这将调用 Web 服务 B,并且与 Web 服务如何工作无关)

为了实现 Web 服务,您可以将无状态会话 bean 注释为 Web 服务。它将其方法公开为 Web 服务端点。在这些方法中,您可以实现业务逻辑来调用 Webservice C 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多