Прокси-классы WebService - PullRequest
       2

Прокси-классы WebService

2 голосов
/ 10 сентября 2010

Я написал веб-сервис java, развернул его на своем tomcat и получил доступ к сервису WSDL через мой веб-браузер, все выглядит хорошо.Следующим шагом было создание прокси-класса, который может использоваться клиентом для связи с веб-сайтом.Вот что я сделал следующим образом:

Предположим, что мой wsdl доступен через: http://localhost:8080/testSvc/testSvc?wsdl

Используя инструмент wsimport, я генерирую прокси с помощью следующей команды: $> wsimport http://localhost:8080/testSvc/testSvc?wsdl

Проблема в том, что localhost: 8080 жестко запрограммирован в сгенерированных классах, и если я разверну службу на порте, отличном от 8080, клиент не сможет связаться с ним, поскольку клиент все равно попытается получить доступ к службе на порту8080.

Есть ли способ разработки прокси-классов таким образом, чтобы номер порта не был жестко закодирован?Чтобы мы могли развернуть службу на любом порту?

Я попытался обновить ENDPOINT_ADDRESS_PROPERTY, но это бесполезно, поскольку код завершается ошибкой в ​​тот момент, когда он создает экземпляр прокси-класса.На самом деле он никогда не достигает точки, где я могу перезаписать ENDPOINT_ADDRESS, что он готов из прокси-класса.

Ответы [ 2 ]

6 голосов
/ 14 сентября 2010

Одним из способов является использование параметра wsimport

-wsdllocation <location>

и укажите его на новый WSDL.

Или вы можете использовать

-каталог опция.

Для динамического изменения адреса используйте код вроде:

service = new Service();
port = service.getxxxPort();

((BindingProvider) port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, newUrl);
0 голосов
/ 10 сентября 2010

Используйте параметр -keep , чтобы сохранить исходные файлы, сгенерированные wsimport. Оттуда вы можете изменить URL-адрес конечной точки в сгенерированном wsimport исходном коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...