2010-09-24 4 views
6

Я пытаюсь выяснить, какие лучшие варианты для разработки веб-приложения RESTful с Java EE 6. Например, я хочу иметь возможность интерпретировать URL-адрес следующим образом:RESTful Веб-разработка с Java EE 6 - какие опции?

GET www.myapp.com/клиентов/1 - возвращает веб-страница, содержащая подробную информацию о клиенте с идентификатором 1.

Единственные два варианта я могу думать являются

  1. Использование Spring MVC 3
  2. Использование спецификации JAX-RS что позволяет визуализировать представления - я слышал, что RESTEasy интегрируется с Spring MVC?

Есть ли другие рамки, которые позволят вам разрабатывать веб-приложения, подобные этому? Также я был бы очень благодарен за понимание того, почему одна структура может быть лучше другой.

Еще одно мое мнение - какие технологии просмотра вы можете использовать с каркасом? Я слышал, что многие технологии просмотра объединяются с Spring MVC, такими как Velocity и Tapestry ... легко ли они интегрированы или я столкнулся с многочисленными проблемами? Существенно, что мне нужно шаблонирование (например, мастер-страницы в ASP.NET).

Я довольно новичок в мире Java EE - я использую Microsoft, где они дают вам один вариант. Я действительно большой поклонник ASP.NET MVC - есть ли что-то похожее на то, что в мире Java (или это Spring MVC?).

Я не пользуюсь всеми этими выборами ... ПОМОЩЬ!

Спасибо за любые советы/предложения.

+1

Я не буду углубляться в эту тему (слишком субъективен), но я просто хотел сказать: Spring MVC является ** не ** частью Java EE. Spring - независимая сторонняя структура, которая может использоваться * поверх * Java EE. Java EE-копия ASP.NET MVC, кстати, является JSF (JavaServer Faces). См. Также [этот ответ] (http://stackoverflow.com/questions/2556553/what-is-the-main-stream-java-alternative-to-asp-net-php/2556601#2556601). – BalusC

+0

Я знаю об этом. Я открыт для использования сторонних фреймворков, которые будут интегрироваться с Java EE. Я изучил JSF, но я слышал, что это не очень хорошо, если вы хотите следовать стилю RESTful развития? –

+0

Нет, JSF больше подходит для пользовательского интерфейса, а не для службы REST. Существуют [расширения] (http://ocpsoft.com/prettyfaces/), которые могут сделать URL более красивым (если это все-таки все, что вы хотите), но это не делает JSF полноценной структурой REST. Для реального сервиса REST я лично предложил JAX-RS. – BalusC

ответ

6

Я рекомендую вам взглянуть на:

(Один вопрос: зачем конкретно вам нужно интегрироваться с Java EE?)

EDIT: Если вы абсолютно хотите использовать API Java EE, то, как упоминалось BalusC, JAX-RS - ваше решение. Restlet и Джерси поддерживают его. Я не знаю о RESTEasy, но на странице JAX-RS Wikipedia упоминается, что это так.

+0

RESTLet кажется действительно интересным – barjak

+0

Ну, я хочу использовать Java EE 6 - Мне нравится, как выглядит API, я просто не хочу использовать JSF. –

+1

Кажется, что вы немного замешаны между REST и компонентами просмотра. В любом случае я обновил свой ответ, и я бы сказал, что вы должны дать RESTLet, или другую совместимую с JAX-RS фреймворком). – haylem

4

Это не JavaEE, а просто JavaSE (некоторые могут сказать, что это хорошая вещь), но Play Framework - RESTful, и, на мой взгляд, тоже очень приятно использовать.

+0

Я взглянул на Play ... это выглядит действительно круто. Напоминает мне много Ruby on Rails (что мне действительно нравится). Кажется, вы не можете использовать Java EE (например, EJB 3.1, JPA2) и т. Д. С этим? –

+0

Он обеспечивает доступ к JPA, но многие другие материалы Java EE недоступны - вот почему мне это нравится;) Лучше всего посмотреть на демонстрационное видео на своем веб-сайте, так как это хороший обзор того, что есть, если это не в видео, это не в Play, грубо говоря. Существуют плагины для множества других технологий (включая JMS и Spring). Если честно, если вы не создаете огромное корпоративное приложение, Play, вероятно, справится с этой задачей. Это не хорошо для изучения Java EE, хотя! – Rich

1

Я решил пойти с Spring MVC. Я не пошел на JSF 2, потому что это просто не очень RESTful - кажется, что очень много работы, чтобы получить URL RESTful (нужно использовать плагины), он имеет государственную серверную сторону и не ориентирован на действие. Воспроизведение кажется очень классным фреймворком, но он недостаточно зрел для меня, чтобы оправдать его использование (и я все еще не уверен, что вы можете использовать Java EE с ним).

Spring MVC 3 позволяет вам отображать URL-адрес RESTfully и ориентирован на действия - что я предпочитаю.

Я смотрел Grails, который выглядит очень многообещающим, но по-прежнему относительно новым, и похоже, что он не поддерживает Java EE 6.

1

Второй вариант рекомендации Haylem от Restlet. У нас есть большой проект, который несколько использует Java EE (некоторые факсимильные сессии без состояния, Glassfish, таймер, сервлеты, JDBC, JNDI). Restlet подходит очень хорошо: вы можете запускать набор веб-сервисов внутри одного сервлета на основе Restlet. Вы получаете огромную функциональность для относительно небольших усилий. Мы были очень довольны этим.

1

Поскольку у вас есть фон Rails, я бы рекомендовал вам взглянуть на фреймворк Scooter, который переносит множество полезных материалов из Rails на Java. Подобно Struts и SpringMVC, это основанная на действии структура MVC. Он прекрасно справляется с спокойными маршрутами. См. Остаточные URL: http://scooterframework.com/docs/restful_routing.html

Его технология уровня слоев - это просто JSP, управляемая инфраструктурой компоновки SiteMesh. Но он также обрабатывает файлы StringTemplate.