我使用Netbeans创建了java webservices和客户端。但是,客户端似乎已经“内置”了WSDL。
是否有一种简单的方法可以让我的客户端在执行时获取并解析WSDL代码,这样,如果webservice移动到另一台服务器,那么只需使用不同的命令行参数调用客户端来查找webservice的位置?
答案 0 :(得分:1)
NetBeans的自动生成代理工厂提供了两个构造函数。
nullary将工厂初始化为提供给“来自WSDL的新Web服务客户端...”对话框的硬编码URI。
第二个构造函数接受WSDL文档的URL和服务QName。
当您让NetBeans将服务调用插入源代码时,它生成的代码片段使用了无效的构造函数,但您可以手动更改它。
// alternate constructor: SampleDomainService(URL, QName)
SampleDomainService service = new SampleDomainService();
SampleDomain port = service.getSampleDomainPort();
SampleDomainRequestType request = new SampleDomainRequestType();
SampleDomainResponseType result = port.sampleOperation(request);
答案 1 :(得分:0)
您是否考虑让您的客户端根本不使用WSDL中的服务器URL,而只是使用您配置它的服务器地址?
答案 2 :(得分:0)
大多数自动生成的客户端允许您指定WSDL URL的位置,即使其中一个是硬编码的(例如,CXF也是如此)。