Как лучше всего реализовать клиент веб-службы внутри веб-приложения? - PullRequest
0 голосов
/ 13 июля 2009

У меня есть служба, работающая в фиксированном месте в сети, с подключенным WSDL и т. Д. Я могу легко создать клиента jax-ws с wsimport и обычными вещами при выполнении этого автономного режима, но я бы очень нравится иметь возможность вызывать этот сервис из другого веб-приложения.

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

java.lang.ClassCastException: com.sun.xml.ws.client.WSServiceDelegate cannot be cast to javax.xml.ws.spi.ServiceDelegate21

Где-то есть запись в блоге, в которой предлагается исправить это, удалив одобренные jax-ws jar, но это может привести к тому, что на этом конкретном сервере что-то сломается, и поэтому мне было интересно, если нет лучшего способа выделить это в дальнейшем? Возможно, полностью полагаться на конкретную поддержку j2ee, но я бы очень хотел сохранить возможность развертывания приложения и в простом веб-контейнере (jetty, tomcat, ...).

1 Ответ

3 голосов
/ 13 июля 2009

Мой совет - забыть JAX-WS на клиенте. Это сложно и не так переносимо, как кажется, и часто является головной болью интеграции.

Я предлагаю более легкий клиент веб-службы, например WebServiceTemplate Spring-WS . Он будет поддерживать ваши существующие сгенерированные wsimport привязки JAXB, но будет игнорировать материал JAX-WS. Это просто, легко и будет работать во всем, от полного стека JBoss до приложения Jetty, не мешая существующим фреймворкам.

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