2011-06-22 64 views
0

我在Java中爲內部應用程序構建了一個簡單的RPC服務器原型。儘管最終我想切換到專門的高性能RPC庫,例如MessagePack,Apache Avro或到0mq的Java綁定,但現在我想盡可能簡化事情,所以從JSON over HTTP開始。我想使用Jetty,以便我可以嵌入Web服務器並儘可能簡化安裝和部署。但是我對Java webdev沒有太多的經驗,並且正在把一些特定的請求處理程序對象中的每一個與特定的URL關聯起來。我的一般印象是,這可能是web.xml文件的用途,但如果可能的話,我寧願將它連接到源代碼。在Java中映射URL以請求處理程序的最簡單方法

我應該強調的是,我不需要像會話,模板,數據庫訪問等有趣的webapp功能。我只需要從POST請求體獲取JSON字符串,做一些東西,然後在響應。因此,基本上,寫兩個請求處理程序(servlet?)的最好方法是什麼,它們分別返回大寫和小寫請求正文,並將它們註冊爲路徑「/ upper」和「/ lower」在我的服務器上,最好不使用配置文件。這將在嵌入式Jetty應用程序中進行,但如果您不想要,您肯定不需要依賴該應用程序。

回答

1

就我個人而言,我會用Spring來做。 Spring可以做很多事情,正如你所說的,你不需要大量的Web功能,但是你仍然可以從中選擇你想要的功能。

爲了您的需要,您可以使用單個控制器設置Spring,並在處理請求的方法上使用@ResponseBody註釋。然後你告訴Spring將響應對象序列化爲JSON(我認爲它實際上是默認的)。然後Spring爲你處理序列化,你的代碼只處理Java對象。

下面是對功能的更詳細的文章中,我談到:http://java.dzone.com/articles/spring-3-rest-json-path-variables

如果你去你周圍的搜索可能會看到很多的例子與一羣討厭的XML配置,但不要擔心,Spring的更高版本可以配置幾行Java代碼。

爲了解決您關於使用Avro的注意事項,它實際上並不像您想象的那樣難以設置。下面是一個完整的示例應用程序,使用Avro在您的服務器組件的servlet容器中: http://code.google.com/p/avro-http-example/wiki/Guide

0

如果你不想設置一個配置文件,Jetty API對你來說應該是非常方便的。開始here

相關問題