Jetty的轻量级替代方案

16

通常当涉及到类似Tomcat和Glassfish这样的Servlet容器和应用服务器时,Jetty被提及为轻量级的替代选择。

我想在CloudFoundry上运行一个RESTful服务。使用jetty-runner。

java -jar target/dependency/jetty-runner.jar target/*.war

运行起来还算不错,但我在使用Jetty 9.1.3(当前稳定版本)/w Java 8时遇到了问题。所以我贡献了一个补丁来修复这个问题和一些其他的代码清理问题。通过这种方式,我看到了Jetty的代码并不像我希望的那样...

嗯,我只是不想把我的企业应用程序托付给Jetty,并正在寻找替代方案。另外,5.x MB的jetty-runner.jar仍然非常庞大。我设法将其缩小到1.6 MB,仍然可以运行我的应用程序。因此,更轻量级的方法是可行的。

是否有GlassFish或Tomcat的轻量级版本。 我只需要在Web服务器上下文中运行servlet-api.jar(v3.1)。没有JSP,没有websocket-server,也没有其他神秘芝士。


2
Jetty不够轻量级?它的质量不可靠?你贡献的补丁历史显示,你的问题是由于使用冲突的ASM版本引起的。这不是Jetty的错。抱歉,但你的整个问题看起来像是在发牢骚。 - G. Demecki
3个回答

26
Undertow是一个灵活且高效的Web服务器,用Java编写,提供基于NIO的阻塞和非阻塞API。Undertow具有基于组合的架构,允许您通过组合小而单一目的的处理程序来构建Web服务器。这使您可以选择完整的Java EE Servlet 3.1容器或低级非阻塞处理程序或介于两者之间的任何内容。Undertow非常轻量级,核心jar文件不到1MB。在运行时也很轻量级,使用小于4MB的堆空间的简单嵌入式服务器。 链接到官方网站

我正在寻找一个代码片段,以启动在我的web.xml中定义的Web应用程序;目前http://undertow.io/documentation/servlet/deployment.html为空。 - Alex
1
也许这就是你需要的:https://github.com/undertow-io/undertow/tree/master/examples - DmitryKanunnikoff
很遗憾,我没有找到任何基于web.xml配置启动http服务器的示例。 - Alex
2
我认为你需要将web.xml文件打包到*.war归档文件中。也许这个链接会有帮助:https://github.com/undertow-io/jastow/blob/master/src/test/java/io/undertow/test/jsp/basic/SimpleJspTestCase.java和https://issues.jboss.org/browse/UNDERTOW-198。 - DmitryKanunnikoff
编写一些代码来解析简单的web.xml并配置Undertow定义的servlet、映射、init参数等相对容易。我可以理解为什么Undertow团队将包括web.xml在内的完整war支持留给WildFly... - jugglingcats
显示剩余2条评论

4

1
很遗憾,Jersey容器不支持任何servlet部署描述符,即web.xml和在其中定义的Servlet。 - Alex

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接