Подтвердить что ты не робот

JAX-WS против JAX-RS для веб-службы RESTful

Привет, я работал с JAX-WS для веб-сервисов на основе SOAP. Теперь я хочу использовать REST, потому что REST имеет преимущества перед SOAP, поскольку я изучал его здесь.

Но из разных статей я знал, что мы также можем создавать веб-сервисы RESTful из JAX-WS. Но большинство людей говорит, что мы должны использовать JAX-RS вместо JAX-WS.

Мой вопрос в том, какая разница между JAX-WS RESTful webservice и JAX-RS (трикотаж). Каковы преимущества JAX-RS над JAX-WS? И почему мы должны использовать JAX-RS для веб-сервисов RESTful?

Спасибо в Advance.

4b9b3361

Ответ 1

TL; DR

JAX-WS предназначен для веб-сервисов на основе XML, таких как SOAP. JAX-RS не имеет того же ограничения.

JAX-WS обычно ориентирован на взаимодействие между сервером и сервером с четко определенными контрактами (WSDL) и обычно, когда служба и клиентская сторона являются отдельными группами. Он очень ресурсоемкий, поэтому невозможно взаимодействие между клиентом и сервером, где сетевое или клиентское устройство меньше оптимального.

JAX-RS ориентирован на взаимодействие клиента с сервером, хотя сервер-сервер в порядке. Поскольку у него мало обязательств по обслуживанию, он может быть настроен на все, что требуется клиенту.

Подробнее

API JAX-RS поддерживает только кодовые подходы, тогда как JAX-WS допускает как первый код (обычно не рекомендуется), так и контракт с использованием WSDL файлов (более часто рекомендуется).

JAX-RS 2.0 представляет API-интерфейс клиента, который представляет собой интеллектуальную оболочку для HttpUrlConnection, которая имеет гораздо больше возможностей сопоставления, JAX-WS также является оболочкой, но данные, с которыми он имеет дело в эталонных реализациях, - это просто XML.

JAX-RS имеет преимущество в создании API-интерфейсов, которые проще создавать и пересылать сообщения для разных браузеров и мобильных устройств, а именно структуры JSON. Он не вводит понятие конверта и использует для него HTTP. Он не вводит криптографию или безопасность, он использует HTTPS для нее.

JAX-WS, хотя он работает на HTTPS для криптографии, предоставляет дополнения для безопасности с использованием WS-SecurityPolicy и т.д. Кроме того, контракты прочно устанавливаются с использованием WSDL и могут быть проверены вне приложения с использованием ESB, таких как DataPower.

Итак, что выбрать

JAX-WS обычно ориентирован на взаимодействие между сервером и сервером с четко определенными контрактами (WSDL) и обычно, когда служба и клиентская сторона являются отдельными группами. Он очень ресурсоемкий, поэтому невозможно взаимодействие между клиентом и сервером, где сетевое или клиентское устройство меньше оптимального.

JAX-RS ориентирован на взаимодействие клиента с сервером, хотя сервер-сервер в порядке. Единственным договорным обязательством между клиентом и сервером является сообщение и заголовки запросов. Поскольку у него мало обязательств по обслуживанию, он может быть настроен на все, что требуется клиенту.

Однако использование API-интерфейсов RESTful сродни выполнению метапрограмм, таких как Ruby и Python, что задерживает проблемы во время выполнения, так как нет определенной схемы, согласованной и технически усиленной двумя сторонами. Поэтому я не рекомендую использовать службы RESTful везде, но я бы рекомендовал, если бы у меня был контроль над двумя сторонами, что обычно происходит, когда вы создаете веб-приложение, использующее статический HTML/CSS/JS, и разговариваете с сервером RESTful для данных.