Предоставить класс Java в качестве веб-службы в существующем веб-приложении, работающем под управлением Tomcat. - PullRequest
0 голосов
/ 10 ноября 2010

Я использовал Axis2 для создания веб-сервисов.И это было очень легко написать, протестировать и запустить.

Но теперь у меня есть существующее Java Web App, работающее под управлением Tomcat, и я хочу добавить в него Web-сервисы.Например, вместо того, чтобы обрабатывать параметры POST и GET и генерировать HTML, я хочу получать сообщения SOAP, обрабатывать их и снова возвращать ответ в виде сообщения SOAP.

Какая технология / framework / library / и т.д.следует использовать?

Предпочтительно должно быть просто, как написание веб-сервисов для Axis2.

Ответы [ 3 ]

0 голосов
/ 10 ноября 2010
  1. Добавьте аннотацию @WebService в свой класс Java.
  2. добавьте @WebMethod к методам, которые вы хотите представить как операции веб-службы.
  3. Добавьте зависящий от фреймворка сервлет и отображение фильтра в файл web.xml. Например, для ВС RI f / w это WSServlet. Должно быть что-то подобное и для Axis.
  4. Напишите файл WSDL или сгенерируйте его из имеющегося у вас Java-класса. Вы можете использовать такой инструмент, как wsgen [работает для Sun RI]. это java2wsdl для оси.
  5. Добавьте необходимый файл веб-дескриптора. Обычно это файл wsdd для Axis и файл sun-jaxws.xml, в случае Sun RI.
0 голосов
/ 28 июня 2015
  • Если вы хотите добавить новый веб-сервис, вы можете добавить его в существующее веб-приложение, используя Axis 2

  • Если вы хотите использовать существующую функцию (функциональности), сначала вам нужно провести рефакторинг вашего веб-приложения и извлечь бизнес-логику в новые методы.Затем аннотируйте класс и интерфейс с помощью @WebService.Если вы хотите скрыть некоторые методы, предоставляемые в веб-сервисе, то пометьте эти методы с помощью @WebMethod(exclude=true)

0 голосов
/ 10 ноября 2010

Один из возможных рабочих процессов:

  1. Выполните рефакторинг вашего веб-приложения, чтобы бизнес-логика была реализована в отдельных методах, а doPost() и doGet() только вызывают эти методы.
  2. Извлечение интерфейса ваших бизнес-методов из класса веб-приложений.
  3. Запустите java2wsdl, чтобы преобразовать вышеуказанный интерфейс и связанные с ним типы в спецификацию WSDL.
  4. Запустите wsdl2java с привязками на стороне сервера, чтобы сгенерировать класс скелета и другие вспомогательные элементы.
  5. Замените класс скелета исходным классом веб-приложения (или скопируйте соответствующие методы из веб-приложения в класс скелета).
  6. Удалите избыточные методы doPost() и doGet(), удалите старое веб-приложение.

Et вуаля! У вас есть веб-сервис Axis2 / Tomcat. Требует некоторого рефакторинга, но без изменений в логике ядра.

...