Я нашел противоречивые ответы на этот вопрос, и мне не удалось успешно запустить пример.Servlet 3.0 и JAX-RS
Может ли JAX-RS быть реализован с использованием сервлета 3.0 (в частности, Tomcat 7) с аннотациями, без необходимости использования другого контейнера сервлетов?
Если нет, объясните, почему следующая цитата из этой книги является либо неправильной, либо я интерпретирую ее неправильно.
Поскольку этот пример развертывается в сервере приложений Java EE или автономный контейнер сервлета 3.x, все, что нам нужно, это пустая web.xml файл. Сервер обнаружит, что класс приложения находится в вашей WAR и автоматически развертывает его. (RESTful Java с JAX-RS 2.0, Билл Берк)
Чтобы уточнить, что я не нужна помощь с ... Я, успешно реализован JAX-RS в Tomcat 7 с использованием Джерси web.xml, поэтому мне не нужно объяснять, как это сделать. Кроме того, я полностью осознаю, что другие Java EE/Servlet Containers (TomEE, Glassfish, Jersey, Websphere и т. Д.) - все JAX-RS знают из коробки. Мне просто нужно знать, буду ли я преследовать свой хвост, пытаясь заставить Tomcat 7 (Servlet 3.0) работать с JAX-RS без добавления контейнера сервлетов и без записей в web.xml.
Спасибо за ваше время. Я хочу знать, могу ли я развернуть это в Tomcat 7 (Servlet 3.0) без ссылок на Джерси или в web.xml. Некоторые ссылки говорят, что все, что вам нужно, это работа JAX-RS - это JavaEE OR Servlet 3.0 .... без упоминания о сервлет-контейнерах/инициализаторах (кроме javax.ws.rs.core.Application). Если в Servlet 3.0 по-прежнему требуется контейнер/инициализатор сервлетов, то книга и ссылки, которые я прочитал, являются неправильными. Вы уверены, что не относитесь к Tomcat до Servlet 3.0? –
Нет, вы не можете без реализации JAX-RS. Только серверы Java EE оснащены JAX-RS. Томкат этого не делает. JAX-RS является частью спецификации Java EE. Tomcat не является сервером, совместимым с EE. Он поддерживает только части спецификации, такие как сервлеты и jsp. Другие особенности спецификации, мы должны добавить себя, такие как JAX-RS (которая сама по себе является только спецификацией), добавив ее реализацию (например, Джерси или RESTeasy). –
Ok. Таким образом, в примере в книге, о котором я говорил, существует только класс, который расширяет javax.ws.rs.core.Application и классы ресурсов добавляются. Существует только пустой web.xml и без контейнеров сервлетов (т. Е. Джерси). Следующий текст приведен ниже: «Поскольку этот пример развертывается на сервере приложений Java EE или автономном контейнере Servlet 3.x, нам нужен только пустой файл web.xml. Сервер обнаружит, что класс приложения находится внутри вашей WAR и автоматически развертывать его ». В соответствии с тем, что вы мне говорите, книга неверна? –