Можно ли использовать JAX-RS в качестве веб-фреймворка? - PullRequest
8 голосов
/ 14 июля 2010

В последнее время я изучал JAX-RS, потому что мне действительно нравится платформа Java и RESTful стиль веб-разработки.Я много читал об использовании JAX-RS для создания веб-сервисов RESTful, но возможно ли использовать JAX-RS для создания веб-сайтов RESTful?Я предполагаю, более конкретно, возможно ли использовать JAX-RS в качестве контроллера (для извлечения необходимых данных с сервера), а затем передать управление механизму представления для визуализации соответствующего HTML?

Я гуглялпоблизости, но не нашел никаких ресурсов, которые бы показали вам, как это сделать.

Спасибо за понимание и помощь.

Ответы [ 3 ]

6 голосов
/ 14 июля 2010

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

Прочтите этот пост в блоге: JAX-RS как единый веб-фреймворк Java, управляющий всеми этими функциями?

Я думаю, это именно то, что вы ищете.

3 голосов
/ 14 июля 2010

Если вы действительно хотите полагаться только на JAX-RS для веб-фреймворка, лучше всего подойдет Джерси. Имейте в виду, что функции, которые вы получаете от него, будут минимальными, и вы, очевидно, не получите все навороты, как то, что предоставляют JSF, Wicket и т. Д.

Если вы знаете, что ваше веб-приложение будет полагаться на Spring, возможно, вам следует подумать об использовании Spring MVC 3.0. Он предоставляет полноценные веб-сервисы и предоставляет вам улучшенные функции, поэтому вам не нужно реализовывать большинство из них самостоятельно. Конечно, Spring MVC 3.0 не является реализацией JAX-RS и, основываясь на том, что сказал разработчик Spring, кажется, что они никогда не сделают Spring MVC в качестве реализации JAX-RS, поскольку они уже довольно устойчивы. Однако, по моему мнению, синтаксис довольно похож, или, по крайней мере, я смог понять их довольно быстро, хотя я уже довольно давно использую Джерси.

3 голосов
/ 14 июля 2010

Дбырн прав, что почти никто не делает этого. Обычно JAX-RS используется для вывода информации в JSON или XML. Затем вы добавляете в веб-браузер инфраструктуру RIA (например, Ext JS ), которая обрабатывает DOM и вводит данные по мере их извлечения в форме JSON / XML. Этот подход является мощным. Вы можете написать несколько, возможно, не браузерных клиентов для сервиса, все они анализируют один и тот же JSON / XML. Вы можете написать «одностраничные» веб-приложения, где весь обмен информацией происходит через AJAX после начальной загрузки страницы. Я настоятельно призываю вас изучить и рассмотреть его сильные и слабые стороны в контексте вашей конкретной проблемы.

Возвращаясь к вашему вопросу: ответ "вроде". Эта функциональность не предоставляется напрямую спецификацией JAX-RS (по состоянию на 1.1). Однако равно в эталонной реализации JAX-RS, Джерси , через объект ответа Viewable. См. Этот пост в блоге, если вы хотите продолжить расследование: http://blogs.oracle.com/sandoz/entry/mvcj. Я хочу отметить, что у меня есть нет опыта работы с этой стороной Джерси. Было приятно писать веб-сервисы, возвращающие XML / JSON, с Джерси, но я не могу говорить с этим бизнесом по шаблонированию HTML на стороне сервера.

Редактировать : dbyrne отредактировал свой ответ, включив в него сообщение в блоге, которое указывает на упомянутое выше. Я думаю, что мы оба сошлись примерно в одном и том же ответе.

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