Как динамически создать сервисный прокси с JAX-WS - PullRequest
0 голосов
/ 26 ноября 2010

У меня есть общий интерфейс веб-службы на каждой конечной точке приложения (сервер и клиент). Как я могу создать порт на стороне клиента без подключения к серверу для «того же» WSDL?

Я ищу что-то, что представляет этот псевдокод:

MagicProxyFactory proxy = MagicProxyFactory.newInstance(MyServiceInterface.class);

/* then bind service address like that
((BindingProvider)proxy).getRequestContext()
.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http address"); 
*/

MyServiceInterface port = (MyServiceInterface) proxy.getPort();

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Шаги включают в себя:

  1. Создайте экземпляр службы, используя метод Service.create для которого вам нужно знать местоположение wsdl, имя службы и URL-адрес пространства имен службы.
    например,

    URL wsdlLocation = новый URL ("http://example.org/my.wsdl"); QName serviceName = new QName ("http://example.org/sample"," MyService "); Service s = Service.create (wsdlLocation, serviceName);

  2. Получите прокси службы (сервисный порт для подключения), используя метод Service.getPort(). Для этого вам нужно знать имя класса реализации конечной точки.
    например MyService port = s.getPort(MyService.class);

теперь вы можете вызывать методы через прокси.

0 голосов
/ 07 декабря 2010

Использование Метро?Ты не можешьВам нужен WSDL для создания прокси.Либо связывайте WSDL с вашим клиентом (предпочтительно), либо используйте URL-адрес, откуда WSDL можно загрузить во время создания прокси.

...