В чем разница между JAX-RS и JAX-WS?

Прочитав несколько статей о JAX-RS и JAX-WS, у меня было несколько вопросов, которые я хочу подтвердить?

  • Может ли JAX-RS делать асинхронный запрос как JAX-WS?
  • Может ли JAX-RS доступ к веб-службе, которая не работает на платформе Java, и наоборот?
  • Что означает "REST" особенно полезно для устройств с ограниченным профилем, таких как карманные компьютеры и мобильные телефоны "?
  • Что это означает: "JAX-RS не требует XML-сообщений или определений WSDL-сервиса?

Ответ 1

Может ли JAX-RS делать асинхронный запрос как JAX-WS?

1) Я не знаю, включает ли API JAX-RS специальный механизм для асинхронных запросов, но этот ответ все равно может измениться в зависимости от используемой вами реализации клиента.

Может ли JAX-RS доступ к веб-службе, которая не запущена на платформе Java, и наоборот?

2) Я не могу придумать ни одной причины, по которой он не сможет.

Что означает "REST" особенно полезно для устройств с ограниченным профилем, таких как карманные компьютеры и мобильные телефоны "?

3) Архитектуры на основе REST обычно используют легкий формат данных, например JSON, для отправки данных взад и вперед. Это отличается от JAX-WS, который использует XML. Я не вижу XML сам по себе настолько значительно тяжелее, чем JSON (о чем некоторые могут спорить), но с JAX-WS он использует XML, который в конечном итоге делает REST с JSON более легкой опцией.

Что означает "JAX-RS" не требует XML-сообщений или определений WSDL-сервиса?

4) Как указано в 3, архитектуры REST часто используют JSON для отправки и получения данных. JAX-WS использует XML. Это не то, что JSON значительно меньше XML. В основном это спецификация JAX-WS включает в себя большие накладные расходы в том, как она обменивается данными.

Что касается определения WSDL и API, REST будет чаще использовать структуру URI и HTTP-команды для определения API, а не типов сообщений, как это сделано в JAX-WS. Это означает, что вам не нужно публиковать документ WSDL, чтобы другие пользователи вашего сервиса могли узнать, как разговаривать с вашим сервисом. С помощью REST вам все равно нужно предоставить некоторую документацию другим пользователям о том, как организована служба REST и какие данные и HTTP-команды необходимо отправить.

Ответ 3

JAX-WS - это Java API для веб-служб на основе XML - стандартный способ разработки веб-сервисов в SOAP (Простой протокол доступа к объектам).

Вызов веб-служб выполняется посредством удаленных вызовов процедур. Для обмена информацией между клиентом и веб-службой используется протокол SOAP. Обмен сообщениями между клиентом и сервером осуществляется через XML на основе сообщений SOAP.

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

JAX-RS - API Java для веб-служб RESTful. Веб-службы RESTful представлены в виде ресурсов и могут быть идентифицированы с помощью унифицированных идентификаторов ресурсов (URI). Вызов удаленной процедуры в этом случае представлен HTTP - запрос и необходимые данные передаются в качестве параметров запроса. Веб-службы RESTful - более гибкие, могут использовать несколько различных типов MIME. Обычно используется для обмена данными XML или обмена данными JSON (JavaScript Object Notation)...

Ответ 4

Я работал над Apachi Axis1.1 и Axis2.0 и JAX-WS, но я бы предложил вам JAX-WS, потому что он позволяет вам создавать wsdl в любом формате, я делал операцию GetInquiry() в Apache Axis2 это не позволило мне начать название операции в верхнем случае, поэтому я считаю, что это не очень хорошо, поэтому я бы предложил вам использовать JAX-WS