2010-01-12 87 views

回答

12

你可以做到这一点有两种方式:

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...; 
3

你可以从你的服务的构造函数中完成这一切。 JAX-WS将为您生成各种形式的构造函数。这与Chandra上述答案中的解决方案#2基本相同。

但是,我不认为你想要再次编码名称空间和服务名称,就像在答案中所做的那样。简单地做:

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