1

动机

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

问题

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

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

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

4

1 回答 1

4

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

我为以下 url 生成代理(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"));
}
于 2013-10-12T13:23:59.837 回答