动机
我正在构建一个命令行实用程序,它允许用户从远程计算机操作服务器上的用户帐户。为此,服务器提供了一个 SOAP WS API。
问题
如果我使用 wsimport 工具从 WSDL 文件生成客户端代码,则应用程序将固定为单个服务器安装(服务器的 IP 地址在多个位置的代码中固定)。
我需要该应用程序来允许用户使用任何服务器安装。只应在应用程序启动时向他们询问目标服务器的 IP 地址。
实现这一目标的最佳/正确方法是什么?
动机
我正在构建一个命令行实用程序,它允许用户从远程计算机操作服务器上的用户帐户。为此,服务器提供了一个 SOAP WS API。
问题
如果我使用 wsimport 工具从 WSDL 文件生成客户端代码,则应用程序将固定为单个服务器安装(服务器的 IP 地址在多个位置的代码中固定)。
我需要该应用程序来允许用户使用任何服务器安装。只应在应用程序启动时向他们询问目标服务器的 IP 地址。
实现这一目标的最佳/正确方法是什么?
生成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"));
}