2009-11-03 8 views
10

Zainstalowałem usługę JAX-WS i używam klucza wsimport do generowania kodu klienta. Ponieważ uruchamiam wsimport na localhost, otrzymałem kod klienta z binind na adres "localhost"."Przenośny" klient JAX-WS

Ale chcę ponownie użyć kodu klienta na innych komputerach, które uzyskują dostęp do mojej wdrożonej usługi za pomocą publicznego adresu IP y.y.y.y. W jaki sposób można dynamicznie używać tych (jednorazowych) wygenerowanych kodów klienta, aby uzyskać dostęp do mojej usługi. (IP usługi może się zmienić ...)

Odpowiedz

13

To jest pokryta w FAQ z JAX-WS:

P. Jak mogę dynamicznie zmieniać adres serwis internetowy wniosek?

((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "..."); 
6

Pewnie. Spójrz na JBoss example. Oto odpowiedni fragment kodu:

BindingProvider bp = (BindingProvider) port; 
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location"); 

Zwykle WSDL jest generowany i therfore dostawca WS wstawia odpowiednie adresy URL do WSDL.