Как определить, поддерживает ли веб-сервер веб-службы или нет? - PullRequest
0 голосов
/ 01 декабря 2010

Я не очень осведомлен о деталях того, какие веб-серверы поддерживают веб-сервисы, написанные на Java.

Хотелось бы знать следующие три вещи:

1) Что требуется для поддержки веб-служб: только контейнер сервлетов или сервер приложений + веб-контейнер?

2) Хотите знать, что все веб-серверы, поддерживающие веб-разработку в Java, поддерживают веб-службы?

3) Как определить, поддерживает ли конкретный сервер веб-службы или нет?

Заранее благодарю.

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Предполагается, что вы говорите о веб-сервисах SOAP WS- * через JAX-WS.

Java EE 5+ предусматривает поддержку JAX-WS-совместимых веб-сервисов внутри контейнера как на уровне веб-приложений, так и на уровне EJB. Итак, любой полноценный современный сервер приложений будет иметь встроенную поддержку JAX-WS.

Servlet 2.x и 3.0 не требуют поддержки JAX-WS на уровне контейнера, но все основные реализации JAX-WS могут быть развернуты в WAR в современном контейнере Servlet (например, Tomcat).

Java EE 6 предлагает веб-профиль, но веб-профиль не включает JAX-WS. Полный профиль Java EE 6 включает в себя как JAX-WS (SOAP, веб-службы WS- *), так и JAX-RS (для HTTP и других веб-служб RESTful).

Зв

Если вы связываете собственную реализацию, все контейнеры должны вместить вас. Если вы хотите, чтобы он был встроен в контейнер, вам потребуется полноценный сервер приложений Java EE 5 или Java EE 6.

1 голос
/ 01 декабря 2010

Ваш вопрос несколько неясен. Термин веб-служба применяется ко всему, от API стиля REST до служб на основе SOAP, основанных на JSON и т. Д. И т. Д. Википедия говорит, что эквивалентом является Web API , и API почти все.

Итак, чтобы ответить на ваш вопрос. Контейнера сервлета достаточно для поддержки наиболее распространенных типов веб-сервисов, для этого не требуется сервер приложений. Взгляните на Apache CXF , который является фреймворком для множества стилей веб-сервисов (особенно SOAP и REST).

Apache CXF - довольно большая структура, и может потребоваться некоторое время, чтобы разобраться. Если вам нужно что-то более простое, вам лучше взглянуть на некоторые инфраструктуры сериализации объектов и самостоятельно реализовать сервлеты (это то, чем я обычно занимаюсь). Для сериализации в XML используйте готовые аннотации Java JAXB. Для сериализации в JSON используйте Джексон .

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