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

Java SOAP WS-用于同一服务的多个不同安装的单个客户端,java,web-services,soap,wsdl,Java,Web Services,Soap,Wsdl,动机 我正在构建一个命令行实用程序,它允许用户从远程计算机操作服务器上的用户帐户。为此,服务器提供了一个SOAP-WS-API 问题 如果我使用wsimport工具从WSDL文件生成客户机代码,应用程序将固定到单个服务器安装(服务器的IP地址在多个位置的代码中是固定的) 我需要应用程序来允许用户使用任何服务器安装。只应在应用程序启动时向他们询问目标服务器的IP地址 实现这一点的最佳/正确方法是什么?在生成wsdl代理之后。文件是带有注释的文件 @WebServiceClient 我为以下url(

动机

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

问题

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

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


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

在生成wsdl代理之后。文件是带有注释的文件 @WebServiceClient

我为以下url(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"));
}

在生成wsdl代理之后。文件是带有注释的文件 @WebServiceClient

我为以下url(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"));
}

将url放在数据库或.perperties文件中,然后让用户选择ip和端口。然后将url放在从db或.properties文件读取的生成代理文件中。我自己也有一个类似的场景,并将其放入.properies文件中。问题是,我使用wsimport工具生成的存根类没有将服务器的IP作为参数。相反,它固定在多个位置(代码中的字符串文字)。如何生成支持该方案的存根?我将向您发送我的代码。请将其发送到与我的SO帐户关联的电子邮件地址。非常感谢你,杜桑。rychnovsky@gmail.com,感谢在数据库或.perperties文件中显示url,然后让用户选择从db或.properties文件读取的生成代理文件中的ip和端口。我自己也有一个类似的场景,并将其放入.properies文件中。问题是,我使用wsimport工具生成的存根类没有将服务器的IP作为参数。相反,它固定在多个位置(代码中的字符串文字)。如何生成支持该方案的存根?我将向您发送我的代码。请将其发送到与我的SO帐户关联的电子邮件地址。非常感谢你,杜桑。rychnovsky@gmail.com谢谢