Представить класс Java как веб-службу в существующем веб-приложении, работающем под управлением Tomcat.

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

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

Какая технология/фреймворк/библиотека/и т.д. следует использовать?

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


person Radnev    schedule 10.11.2010    source источник


Ответы (3)


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

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

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

person Little Bobby Tables    schedule 10.11.2010

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

  • Если вы хотите добавить новую веб-службу, вы можете добавить ее в существующее веб-приложение с помощью Axis 2.

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

person Ranuka    schedule 28.06.2015