2010-01-12 4 views
8

Netbeans를 사용하여 WSDL URL에서 웹 서비스 클라이언트 코드를 생성했습니다. 그러나 코드를 사용하여 런타임에 끝점 주소를 변경할 수 없습니다.런타임에 WebService 끝점 주소 변경

이 문제를 해결하는 데 도움을주십시오. BindingProvider

1) port을 주조, 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을 취하는 생성 된 서비스 생성자를 호출 할 수 있습니다를 지정

답변

12

귀하는 두 가지 방법으로 할 수 있습니다.

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); 
관련 문제