17

有没有人在 Netty 之上构建了一个 Servlet API 实现?我很想建立自己的,因为我无法谷歌实现。

基本上我希望支持足以让球衣工作(希望球衣没有做任何线程本地的东西)。

4

4 回答 4

17

Jersey 不需要 servlet - 即使使用 JDK 中包含的轻量级 http 服务器也可以正常运行,甚至可以使用 Grizzly NIO 框架(类似于 Netty - 请参阅 grizzly.java.net)运行。要了解使用 Netty 运行它需要什么,您可能需要查看 Jersey 工作区中的 jersey-grizzly2 模块 - 如果您愿意开发它并为 Jersey 项目做出贡献,那就太好了。现在,让你失望的是,Jersey 确实使用了 ThreadLocals。我们一直在计划引入对非阻塞异步调用的支持,但这需要大量的重构,因此只会提供 2.0 版本(一旦最终版本实现 JAX-RS 2.0)。无论如何,除了非阻塞的东西之外,在 Netty 等类似 Grizzly 的框架上运行它仍然很有用,因为它的“轻量级”。

于 2011-09-17T17:30:50.520 回答
4

如果你想使用Jerseywith Netty,你可能需要安全并使用org.jboss.netty.channel.socket.oio.OioServerSocketChannelFactory

不是,

org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory

这将允许这些ThreadLocal东西在负载下正常工作。

当然,当Jersey升级到不使用ThreadLocal, butChannelLocal时,就不再需要了。

于 2012-02-14T18:33:48.067 回答
2

如果你想让 Jersey 与 Netty 一起工作,你可以使用https://github.com/cgbystrom/jersey-netty提供的绑定

于 2011-10-02T17:55:24.827 回答
1

你在寻找Netty-Servlet-bridge吗?

该项目为 Netty.IO 框架 ( http://netty.io/ ) 提供了一个 Servlet API 实现。

Netty Servlet Bridge 允许将现有的基于 Servlet API 的 Web 应用程序集成到 Netty 支持的基础设施中。

于 2013-08-10T22:00:25.713 回答