cliente JAX-WS “portátil”
Pergunta
Eu implantou uma JAX-WS Serviço e uso wsimport para gerar o código do cliente. Porque eu corro wsimport em localhost, eu tenho o código do cliente com binind em "localhost".
Mas eu quero reutilizar os código de cliente em outros computadores que acessam o meu serviço implantado com um y.y.y.y. IP público Como dinamicamente pode usar os código de cliente (uma vez) gerado para acessar o meu serviço. (O IP do serviço pode mudar ...)
Solução
Este é coberto no FAQ de JAX-WS:
Q. Como posso alterar o endereço Web Service dinamicamente para um pedido?
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "...");
Outras dicas
Claro. Dê uma olhada na JBoss exemplo . Aqui está o trecho de código relevante:
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");
Normalmente, o WSDL é gerado e therfore O profissional insere WS os URLs relevantes para o WSDL.