Реанимация вопроса без ответа на основе блога Джастина и Tug's :
JAX-WS: Как настроить конечную точку службы во время выполнения?
При развертывании клиента веб-службы вам часто требуется изменить конечную точку службы, которая была установлена во время генерации кода. В этом коротком посте объясняется, как вы можете изменить его во время выполнения в клиентском коде.
У вас есть два подхода для этого:
- установить конечную точку в порту с помощью BindingProvider;
- получить URL-адрес конечной точки от самого WSDL во время выполнения;
Используйте Binding Provider для установки URL-адреса конечной точки
Первый подход заключается в изменении значения свойства BindingProvider.ENDPOINT_ADDRESS_PROPERTY для BindingProvider (Port) с использованием следующего кода:
try {
EmployeeServiceService service = new EmployeeServiceService();
EmployeeService port = service.getEmployeeServicePort();
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
"http://server1.grallandco.com:8282/HumanRessources/EmployeeServiceService");
Employee emp = port.getEmployee(123);
System.out.println("Result = "+ emp);
} catch (Exception ex) {...
Используйте WSDL для получения URL-адреса конечной точки
Другая часть заключается в установке WSDL при создании Службы. Служба будет использовать значение, которое находится в порту WSDL -SOAP Endpoint-. Это просто сделать, используя следующий код:
try {
EmployeeServiceService service =
new org.demo.service.EmployeeServiceService(
new URL(
"http://server1.grallandco.com:8282/HumanRessources/" +
"EmployeeServiceService?wsdl"),
new QName(
"http://service.demo.org/",
"EmployeeServiceService"));
EmployeeService port = service.getEmployeeServicePort();
Employee emp = port.getEmployee(123);
System.out.println(
"Result = "+ emp);
} catch (Exception ex) {
Обратите внимание, что в Glassfish, как и во многих средах веб-служб, WSDL может динамически генерировать URL-адрес конечной точки на основе URL-адреса, используемого для получения WSDL. При таком подходе вы также можете динамически изменять конечную точку Soap (если она совместима с сетевой конфигурацией производственной среды).