2010-04-16 140 views
1

我想創建一個通過REST提供/接受json文件的Web服務器。被提供的JSON文件將來自數據庫查詢並將結果格式化爲JSON。 對於一個好的java庫有任何建議。我嘗試過使用Apache HTTPComponents。 雖然也許我可以創建一個servlet,但我並沒有真正允許在服務器機器上安裝一個servlet容器。用於實現自定義Web服務器的Java庫建議

編輯: 我只是想創建一個程序,我可以簡單地發出一個簡單的java -jar Application.jar,並且所有東西都已經啓動並且功能正常。應用程序將偵聽機器的某個端口並響應來自瀏覽器和/或另一個Java程序的一些請求。看起來Jetty會幫助我做到這一點。正如我所說的,我已經使用HTTPComponents實現了一些東西,我只是簡單地解析請求中的URL,然後根據解析的URL在服務器中執行一些操作。

+0

如果您不被允許安裝servlet容器我不確定他們會很高興與您安裝自定義的web服務器。這聽起來像一個最適合於servlet的工作。 – Pace 2010-04-16 13:40:43

回答

1

我是古老的Jetty的巨大粉絲。它小而直接。技術上它是一個servlet容器(它更多的是嵌入式HTTP服務器),但是你可以將它嵌入你自己的應用程序中。它還支持Java REST庫,如Jersey

1

CXF是一個夢幻般的Web服務庫。它內置了對REST的支持,但我自己並沒有嘗試過這個特殊功能。 CXF在默認情況下使用Jetty,但它被設計爲可以很容易地適應Tomcat或其他servlet容器。

+0

不錯,我還沒有嘗試CXF之前... – 2010-04-16 14:12:13

0

你真的需要一個Web服務器的所有開銷和複雜性?這聽起來像你真正需要的是一個套接字監聽器。

1

我建議在看看:

我喜歡他們:

  • 雙方你可以運行嵌入式(作爲罐子)。
  • 它們都支持「異步事件驅動」/ NIO體系結構。碼頭有這個continuations。 NIO是處理IO的新方式,具有更好的擴展能力。
+0

你的Jetty將是一個不錯的選擇嗎?也許可以使用RESTlet來實現RESTful Web服務? – dexter 2010-04-16 20:51:07

+0

我想你們都可以在Jetty和Netty上實現REST。我的第一個選擇是坦白的說實話。最近我一直在玩很多,我非常喜歡它。佔地面積小,速度非常快。但也是碼頭是一個非常好的包。很多大公司都使用Jetty。例如,Google的Java應用程序引擎在Jetty上運行。實現REST接口在很大程度上是關於紀律的。很好地記錄你的API。但Netty/Jetty支持GET/PUT/POST/DELETE語義(很容易),這是實現REST API /接口所必需的。 – Alfred 2010-04-17 01:14:20