我有 .net 开发背景,但对 Java 世界比较陌生。我们已经开始使用 JAX-RS 开发 RESTful 服务(公共 Web API),主要由移动平台(Android、iPhone、Windows Phone 等)使用。
- 我们需要一些有关选择合适服务器(例如 Tomcat 或 Glassfish 等)的指导吗?也请分享原因。
- 另外请指导我们对 JAX-RS 的决定是否适合构建 RESTful 服务。
Tomcat 只是一个 servlet 容器,这仅仅意味着它不会提供对 Java EE 功能的支持。
除了查看 RESTful 服务,还可以查看您打算使用什么来实现您的层功能。如果您只坚持使用 Servlet/JSP,那么 Tomcat 绝对是一个非常合理的选择。如果您需要使用 JavaEE 功能,请查看 GlassFish。
纯粹就功能而言,GlassFish 可以做 Tomcat 可以做的一切,甚至更多,因为它是一个完全符合 JavaEE 的应用服务器。但是,请注意,Tomcat 对于许多复杂的应用程序(不使用 Java EE 功能)有很好的效果。
在性能方面,Tomcat 是轻量级的,启动速度非常快,并且在 Eclipse 环境中得到了很好的支持。GlassFish 启动速度有点慢(在我糟糕的笔记本电脑上大约需要 11 秒),但部署速度非常快。
Tomcat 有一个用于基本应用程序部署的管理器应用程序,但 JNDI 和类似的资源配置(如用户配置)必须通过手动编辑 XML 文件来完成。Glassfish 有一个不错的管理控制台,它允许您从中央 UI 完成所有这些操作,而无需手动编辑配置。
无论如何,我要说的是,您的选择应该完全基于您打算从 Java/Java EE API 中使用的内容,以及最符合该要求的服务器。不要遵循任何流行共识,因为您的要求是您最好的指南。
就使用 JAX-RS 实现而言,我没有看到任何问题。我和泽西岛一起工作过,这里先看看这两个: http ://www.slideshare.net/pelegri/jersey-and-jaxrs-presentation
最后,就 SSL 而言:Tomcat 和 Glassfish 都会很乐意使用 SSL,两者都没有问题。
GlassFish SSL tut:http: //javadude.wordpress.com/2010/04/06/getting-started-with-glassfish-v3-and-ssl/
祝你好运。
你可以看看Play Framework。它是可扩展的、无状态的、宁静的 Web 框架。通常它不需要像 Tomcat 这样的应用服务器。它有自己的基于Netty的内置高性能网络服务器。但是,如果您需要,可以将应用程序打包为 .war。
使用 Play 构建 RESTful Web 服务不会有问题。
我们在生产环境中使用它并且对它非常满意。开发非常快速和容易。它就像 Java World 中的 Ruby on Rails。
编辑
例如,您可能会看到这篇文章。