如何让我的java webservice客户端在执行时获取并解析WSDL?

时间:2010-03-24 20:34:44

标签: java netbeans web-services wsdl

我使用Netbeans创建了java webservices和客户端。但是,客户端似乎已经“内置”了WSDL。

是否有一种简单的方法可以让我的客户端在执行时获取并解析WSDL代码,这样,如果webservice移动到另一台服务器,那么只需使用不同的命令行参数调用客户端来查找webservice的位置?

3 个答案:

答案 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也是如此)。