【问题标题】:Reuse jax-ws client proxies for different addresses为不同的地址重用 jax-ws 客户端代理
【发布时间】:2013-11-04 15:54:05
【问题描述】:

我有一堆 Web 服务服务器(大约 200 个)在同一台机器上运行,它们在不同的端口上公开相同的服务。
我有一个客户端,它执行的任务包括在不同的服务器上调用服务。
类似的东西:

while (true) {
    task = readTask();
    runHelloService(task.serverAddress)
}

我想知道生成 HelloService 客户端代理的最佳方法是什么。
我可以在每次调用之前生成一个并替换目标地址吗?
我应该为每台服务器生成一个客户端(这意味着 200 个客户端代理)并使用相关的吗?
我可能想在多个线程上同时运行上述循环。
目前我只有一个代理,它是由 spring 和 cxf 生成的,带有 jaxws:client 声明。

【问题讨论】:

    标签: spring web-services jax-ws cxf


    【解决方案1】:

    这是一个有趣的用例。我相信在多个线程之间共享代理的同时更改端点是行不通的。客户端代理和管道定义之间存在一对一的关系。 Changes to a conduit are explicitly not thread safe.

    我建议完全避免使用 Spring 配置来创建客户端代理,而是使用 200 个客户端代理的编程构造。

    另请参阅Custom CXF Transport - 简化的客户端工作流程

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多