Создание веб-сервиса на основе Java

У меня очень простые требования к веб-службе на основе Java. Требование очень простое, передать несколько строковых параметров, сохранить их в базе данных и сгенерировать ответ («успех», «неудача»). Также есть случай, когда мне нужно вернуть простое XML-представление (сообщение SOAP) простого объекта:

<person>
 <name>the name</name>
 <address>the name</address>
......
</person>

Наша текущая среда — Windows, Apache Tomcat 5, SQL Server. Я новичок в веб-сервисах, поэтому пытаюсь выяснить, какие технологии я мог бы использовать для этой работы. Например:

  1. Мне действительно нужен Apache Axis 2 для реализации этого или это будет излишним?

  2. Я видел учебник в Интернете, где все, что нужно для создания веб-сервиса, — это Eclipse, плагин Lomboz для Eclipse и Apache Tomcat. Буду ли я по-прежнему нуждаться в Apache Axis2, если я выберу этот маршрут?

  3. Может ли Tomcat обрабатывать сообщения запросов веб-службы или мне нужны сторонние библиотеки?

Думаю, я ищу самый простой способ реализовать это. Спасибо.


person Marquinio    schedule 30.09.2010    source источник
comment
Как уже упоминалось, веб-служба не обязательно должна означать ни SOAP, ни даже XML. Но даже если вы хотите создавать/использовать XML, SOAP не нужен; используя JAXB для XML-to/from-Objects и Servlet/JAX-RS (Jersey) в качестве контейнера, очень легко создавать веб-сервисы на основе Plain Old Xml. А также на основе JSON.   -  person StaxMan    schedule 30.09.2010
comment
Да, теперь я начинаю понимать. У нас есть веб-службы Интернета, которые отправляют XML по HTTP. У нас также есть веб-службы XML, которые будут отправлять сообщения XML SOAP.   -  person Marquinio    schedule 30.09.2010


Ответы (4)


Вам действительно нужна поддержка SOAP? Если вы это сделаете, Axis, вероятно, ваш лучший выбор. В противном случае я бы посмотрел на Джерси.

person Mike Baranczak    schedule 30.09.2010

Если это будет так же просто, как вы упомянули, почему бы вам не взглянуть на RESTful веб-сервисы? Вы можете указать свои вызовы ресурсов с помощью HTTP-методов GET, POST, DELETE или PUT.

Существует руководство в блоге о том, как этого добиться. Он также показывает, как вы можете вернуть строки JSON/XML (в зависимости от того, что вы хотите).

person Buhake Sindi    schedule 30.09.2010
comment
Да, это выглядит как хорошее решение для меня. Я также считаю, что он поддерживает сообщения SOAP? Если да, то зачем нам Apache Axis2? - person Marquinio; 30.09.2010
comment
В Java 6 теперь есть инструменты, облегчающие разработчикам создание клиента JAX-WS/WSDL. Вы можете создавать собственные XML-сообщения в приложениях RESTful. Все зависит от вашей спецификации. - person Buhake Sindi; 01.10.2010

Веб-фреймворк сделал бы это намного проще (и на самом деле удобным в сопровождении), но вы могли бы просто написать необработанный сервлет для обработки запросов. Однако вам следует использовать метод сериализации объектов XML или, по крайней мере, библиотека синтаксического анализа XML.

person Stefan Kendall    schedule 30.09.2010
comment
Кроме того, JSON также является хорошим форматом для обмена данными; другие уже упоминали JAX-RS (Jersey, RESTeasy, Wink), который хорошо работает как с XML, так и с JSON. - person StaxMan; 30.09.2010

Я думаю, вам понадобится ось для этого. Но я советую вам взглянуть на Apache CXF, если в будущем вам понадобится дополнительная поддержка приложений веб-сервисов. CXF, как и axis2, является внедрением jax-ws, но с преимуществом поддержки jax-rs (остальные). Это означает, что вы можете предоставлять интерфейсы веб-сервисов REST и SOAP.

person Ramson Mwangi    schedule 23.01.2016