Изменить адрес конечной точки WebService во время выполнения - PullRequest
8 голосов
/ 12 января 2010

Я использовал Netbeans для генерации клиентского кода Web Sevice из URL WSDL. Но я не могу изменить адрес конечной точки во время выполнения, используя код.

Пожалуйста, помогите мне решить эту проблему!

Ответы [ 2 ]

12 голосов
/ 12 января 2010

Вы можете сделать это двумя способами:

1) Приведите port к BindingProvider и укажите 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) Вы можете вызвать созданный конструктор службы, который принимает URL WSDL в качестве параметра.

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 голосов
/ 27 сентября 2012

Вы можете сделать все это из конструктора вашего сервиса. JAX-WS создаст для вас различные формы конструктора. Это в основном то же самое, что упоминается как решение № 2 в ответе Чандры выше.

Однако я не думаю, что вы хотите еще раз закодировать пространство имен и имя службы, как это сделано в этом ответе . Просто сделайте:

URL wsdl = new URL("http://New.Endpoint/service?wsdl");
MyService wsService = new MyService(wsdlURL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...