【问题标题】:Dynamic Proxy CXF Web Service动态代理 CXF Web 服务
【发布时间】:2017-07-28 04:16:43
【问题描述】:

我有两个相同的 CXF 3.1 Web 服务 Service_A 和 Service_B,它们具有相同的 WSDL 文件。 Service_A 部署在 Server_X 上,Service_B 部署在 Service_Y 上。有没有办法实现部署在 Server_Z 上的 CXF Web 服务 Service_C,它将扮演动态代理 Web 服务的角色。 Service_C 应该与 Service_A 和 Service_B 具有相同的 WSDL 文件,但它将 SOAP 请求重定向到 Service_A 或 Service_B 并将 SOAP 响应发送回客户端。 先感谢您!

【问题讨论】:

    标签: redirect web service proxy cxf


    【解决方案1】:

    你可以这样做。您的服务 C 接收请求,并以交替方式(轮询)调用服务 A 或服务 B 中的相应端点,然后向客户端返回对服务 A 或 B 的调用返回的任何响应。

    除此之外,我建议在服务器 Z 上使用 Apache 或 Nginx 而不是 Service C 来基本上为您执行此负载平衡操作。负载均衡器将您的客户端请求转发到服务 A 或 B 比从您的服务 C 转发要好得多。

    【讨论】:

    • 非常感谢您的回答!有没有办法以通用的方式对 Web 服务 C 进行编码而不需要生成操作类?
    • 您将在 Web 服务 C 中实现 A 的端点和 B 的端点。服务 C 获取请求并知道调用服务 A 或服务 B 的相应端点。
    • 如何以编程方式实现?我实现了一个 Servlet 过滤器,但我没有工作。
    • 您仍然需要在 Web 服务 C 中编写操作代码。它将充当两个业务服务(在本例中为服务 A 和 B)的服务外观。要从服务 C 内部调用服务 A 和 B 的端点,请使用 RestTemplate。示例: RestTemplate restTemplate = new RestTemplate();字符串结果 = restTemplate.getForObject(uri, String.class);
    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多