在运行时更改WebService端点地址

我使用Netbeans从WSDL url生成Web Sevice客户端代码。 但我无法使用代码在运行时更改端点地址。

请帮我解决这个问题!

你可以用两种方式做到:

1)将portBindingProvider并指定BindingProvider.ENDPOINT_ADDRESS_PROPERTY属性

 MyService service = new MyService(); MyPort port = service.... BindingProvider bindingProvider = (BindingProvider) port; bindingProvider.getRequestContext().put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://New.Endpoint/service"); 

2)您可以调用生成的服务构造函数,该构造函数将WSDL URL作为参数。

 QName qname = new QName("http://serviceuri/", "service"); String wsdl = "http://New.Endpoint/service?wsdl"; MyServiec service = new MyServiec(new URL(wsdl), qname); MyPort port = check...; 

您可以从服务的构造函数中完成所有操作。 JAX-WS将为您生成各种forms的构造函数。 这与Chandra上面的答案中提到的解决方案#2基本相同。

但是,我不认为您希望代码再次成为命名空间和服务名称,就像在该答案中所做的那样 。 简单地说:

 URL wsdl =新URL(“http://New.Endpoint/service?wsdl”);
 MyService wsService = new MyService(wsdlURL);