2010-09-24 28 views
6

我想弄清楚用Java EE 6開發一個REST風格的Web應用程序的最佳選擇。例如,我想能夠解釋如下的URL:使用Java EE 6進行REST風格的Web開發 - 有哪些選擇?

GET www.myapp.com /客戶/ 1 - 返回的網頁顯示細節有關客戶ID爲我能想到的1

只有兩個選項

  1. 使用Spring MVC 3
  2. 使用JAX-RS規範允許您呈現視圖 - 我聽說RESTEasy與Spring MVC集成?

是否有任何其他框架可以讓你開發這樣的web應用程序?此外,我會非常感謝洞察力爲什麼一個框架可能比另一個框架更好。

我的另一個考慮是你可以在框架中使用哪些視圖技術?我聽說很多視圖技術與Spring MVC集成在一起,比如Velocity和Tapestry ......這些都很容易整合,還是會遇到很多問題?一個關鍵是我需要模板(如ASP.NET中的母版頁)。

我對Java EE世界很新穎 - 我使用微軟,他們給你一個選項。我是ASP.NET MVC的忠實粉絲 - 有沒有類似於Java世界的東西(或者Spring MVC呢?)。

我不是用於所有這些選擇......幫助!

感謝您的任何意見/建議。

+1

我不會深入這個(太主觀),但我只想說:Spring MVC是**不是** Java EE的一部分。 Spring是一個獨立的第三方框架,可以用在Java EE的頂層*上。 ASP.NET MVC的Java EE相當於JSF(JavaServer Faces)。另見[這個答案](http://stackoverflow.com/questions/2556553/what-is-the-main-stream-java-alternative-to-asp-net-php/2556601#2556601)。 – BalusC 2010-09-24 14:55:10

+0

我意識到這一點。我願意使用將與Java EE集成的第三方框架。我研究過JSF,但是如果你想遵循REST風格的開發,我聽說它不是很好。 – 2010-09-24 14:59:19

+0

不,JSF更多的是UI,而不是REST服務。有[擴展](http://ocpsoft.com/prettyfaces/)可以使URL更加漂亮(如果那是*畢竟*你想要的),但是這不會使JSF成爲一個完整的REST框架。對於真正的REST服務,我個人建議使用JAX-RS。 – BalusC 2010-09-24 15:05:00

回答

6

我建議你看看:

(但有一個問題:爲什麼您需要能夠與Java EE集成?)

編輯:在絕對要使用Java EE API的情況下,如BalusC所述,JAX-RS是您的首選解決方案。 Restlet和Jersey都支持它。我不知道RESTEasy,但JAX-RS維基百科頁面提到它。

+0

RESTLet看起來真的很有趣 – barjak 2010-09-25 17:57:39

+0

那麼我想使用Java EE 6--我喜歡API的外觀,我只是不想使用JSF。 – 2010-09-26 17:30:40

+1

REST和視圖組件之間似乎有點混亂。無論如何,我更新了我的答案,並且我會說你應該給RESTLet一個鏡頭,或另一個JAX-RS兼容框架)。 – haylem 2010-09-27 01:06:48

4

這不是JavaEE,只是JavaSE(有人可能會說這是一件好事),但Play Framework是RESTful,在我看來也很好用。

+0

我看了一下Play ...看起來很酷。提醒了我很多Ruby on Rails(我真的很喜歡)。它似乎並不像你可以使用Java EE(例如EJB 3.1,JPA2)等等。 – 2010-09-24 19:39:41

+0

它提供了對JPA的訪問,但很多其他Java EE的東西都不可用 - 這就是爲什麼我喜歡它;)最好的辦法是查看他們網站上的演示視頻,因爲它很好地概述了這些內容 - 如果它不在視頻中,大致來說,它不在播放中。有很多其他技術的插件(包括JMS和Spring)。說實話,除非你正在構建一個龐大的企業應用程序,否則Play可能會完成這項工作。儘管學習Java EE並不好! – Rich 2010-09-27 06:48:37

1

我決定和Spring MVC一起去。我沒有選擇JSF 2,因爲它不是很RESTful - 看起來很多工作要獲得REST風格的URL(不得不使用插件),它包含狀態服務器端,並且不是面向操作。 Play似乎是一個非常酷的框架,但對於我來說還沒有足夠成熟的理由來使用它(我還不確定是否可以使用Java EE)。

Spring MVC 3允許您將URL的REST風格映射到行爲導向 - 我更喜歡。

我正在研究Grails,它看起來非常有希望,但仍然比較新,看起來不像它支持Java EE 6。

1

我會第二@ Haylem的建議Restlet。我們有一個利用Java EE的大型項目(一些無狀態會話bean,Glassfish,一個計時器bean,servlets,JDBC,JNDI)。 Restlet非常適合:您可以在一個基於Restlet的Servlet中運行一組Web服務。您只需付出相當小的努力即可獲得大量的功能。我們對此非常滿意。

1

既然你有一個Rails背景,我建議你看看Scooter框架,它將大量好東西從Rails移植到Java。像Struts和SpringMVC一樣,它是一個基於動作的MVC框架。它精美地處理寧靜的路線。查看寧靜的網址:http://scooterframework.com/docs/restful_routing.html

它的視圖層技術只是JSP,由SiteMesh佈局框架管理。但它也處理StringTemplate視圖文件。

相關問題