使用WSDL连接到提供相同Web服务的不同服务器

时间:2012-01-16 00:03:15

标签: web-services java-ee wsdl

我是Web服务的新手,而我所能做的就是Hello World

我的情况如下,我有一些服务器提供WSDL文件,所有服务器提供相同的文件和方法,它们只有不同的IP /端口。此外,每个服务器都包含自己的一组用户。

我知道如何使用一个WSDL进行通信,但我需要两件事:

  • 能够动态添加Web服务(连接/断开连接到其他服务器)
  • 能够以正确的用户身份在正确的服务器上执行方法(如果您要求的服务器上不存在您的用户,则无法提出请求)

我不知道从哪里开始,有人能指出我解决这两个问题的方向吗?

1 个答案:

答案 0 :(得分:0)

您使用的库并不具体。

例如,如果您使用CXF(一般是Jax-WS),您可以执行以下操作:

// change endpoint URL
((BindingProvider)service).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "new url");
// new username. password will be provided by WS callback
((BindingProvider)service).getRequestContext().put(SecurityConstants.USERNAME, "username");

如果您使用Spring作为基础架构,则可以使用一个语句自动装配所有代理:

@Autowired
private Map<String, ServiceInterface> interfaces;

如果您想动态添加网络服务,您必须在应用程序启动时决定动态是否随时 - 但这与Web服务无关 - 它是自动发现的通用编程模型(您可以使用数据库,一个可用服务的远程源等)。