Ответ 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 для данных.