SOAP WS - 用于同一服务的多个不同安装的单个客户端

时间:2013-10-12 10:40:55

标签: java web-services soap wsdl

动机

我正在构建一个命令行实用程序,它允许用户从远程计算机操作服务器上的用户帐户。为此,服务器提供SOAP WS API。

问题

如果我使用wsimport工具从WSDL文件生成客户端代码,则应用程序将固定为单个服务器安装(服务器的IP地址在多个位置的代码中得到修复)。

我需要应用程序允许用户使用任何服务器安装。应该只在应用程序启动时询问它们目标服务器的IP地址。

实现这一目标的最佳/正确方法是什么?

1 个答案:

答案 0 :(得分:4)

生成wsdl代理后。这是一个带注释的文件 @WebServiceClient。

我为以下网址生成代理(wsdl位置)

http://192.168.1.185:10530/service?wsdl

在类的构造函数中,您可以传递由setter字符串或文件设置的所需url或从数据库读取的任何数据。

使用注释@WebServiceClient查找文件(包含getBasicHttpBinding方法) 然后添加以下内容在使用此设置所需的url并调用getBasichttpBinding ....

之前
private static String serviceUrl = "";

public static void setUrl(String url){
    serviceUrl = url;
}

public ServiceClient(URL wsdlLocation, QName serviceName) {
    super(wsdlLocation, serviceName);
}

public ServiceClient() {
    super(serviceUrl, new QName("http://tempuri.org/", "Service"));
}