我正在使用Java为内部应用程序构建一个简单的RPC服务器。
虽然最终我想切换到专门的高性能RPC库,如MessagePack,Apache Avro或Java绑定到0mq,现在我想让事情变得尽可能简单,所以我要开始使用JSON over HTTP。我想使用Jetty,以便我可以嵌入网络服务器,并使安装和部署尽可能简单。但是我对Java webdev没有太多经验,并且我很想知道将少数特定请求处理程序对象中的每一个与特定URL相关联的非常简单的挑战。我的总体印象是,这可能是web.xml文件的用途,但如果可能的话,我宁愿将其连接到源代码中。
我应该强调,我不需要有趣的webapp功能,如会话,模板,数据库访问等。我只需要从POST请求体中获取JSON字符串,执行操作,然后在响应中写回字符串。
基本上,最好的方法是,编写两个请求处理程序(servlet?),它们分别返回请求主体大写和小写,并使用路径“/ upper”和“/ lower”注册它们。我的服务器,最好不使用配置文件。这将在嵌入式Jetty应用程序中进行,但如果您不想这样做,您当然不需要依赖它。
答案 0 :(得分:1)
就个人而言,我会用Spring做。 Spring可以做很多事情,正如你所说,你不需要大量的网络功能,但你仍然可以从中选择你想要的功能。
根据需要,您可以使用单个控制器设置Spring,并在处理请求的方法上使用@ResponseBody注释。然后告诉Spring将响应对象序列化为JSON(我认为它实际上是默认值)。然后Spring为您处理序列化,您的代码只处理Java对象。
这是关于我正在谈论的功能的更详细的文章:http://java.dzone.com/articles/spring-3-rest-json-path-variables
如果你去寻找你可能会看到很多带有一些令人讨厌的xml配置的例子,但不要担心,Spring的后续版本只能配置几行Java代码。
要解决有关使用Avro的说明,实际上并不像您想象的那样难以设置。以下是在服务器组件的servlet容器中使用Avro的完整示例应用程序: http://code.google.com/p/avro-http-example/wiki/Guide
答案 1 :(得分:0)
如果您不想设置配置文件,那么Jetty API应该非常方便。开始here。