Клиент JAX-WS без необходимости создавать новые прокси при переключении между тестированием / производством - PullRequest
3 голосов
/ 29 июля 2010

Я пытаюсь настроить мой клиент JAX-WS для переключения между точкой тестирования / производства без необходимости повторной генерации прокси-классов с помощью wsimport.

Служба, которую я пытаюсь использовать, использует разные WSDL виспытания и производство.Например, targetNamespace отличается, как и адрес soapAction.

Я пытался использовать Springs JaxWsPortProxyFactoryBean и мне удалось указать на другой wsdl в зависимости от среды развертывания, но даже если я указываю на производство,он по-прежнему использует адреса действий WebMethod из теста.Я думаю, это потому, что они жестко запрограммированы в интерфейсе службы, который был сгенерирован с использованием wsimport, указывающего на test-wsdl.

Кто-нибудь знает, возможно ли переключаться между wsdls, используя разные targetNamespace и адреса действий безпрокси-поколения?

1 Ответ

1 голос
/ 29 июля 2010

Вы можете переопределить свойство адреса конечной точки:
https://jax -ws.dev.java.net / guide / How_to_invoke_and_endpoint_by_overriding_endpoint_address_in_the_WSDL.html .

//Create service and proxy from the generated Service class.
HelloService service = new HelloService();
HelloPort proxy = service.getHelloPort();

<b>((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                                                    "http://new/endpointaddress");</b>

proxy.sayHello("Hello World!");

Яиз вашего вопроса не уверен, нужно ли вам переопределить и другие параметры.

...