Внедрение API сервлета с использованием Netty

Кто-нибудь сделал реализацию API сервлета, построенную поверх Netty? Я испытываю соблазн построить свои собственные, поскольку я не могу выполнить реализацию Google.

В принципе, я ищу поддержку, чтобы получить работу джерси (надеюсь, что трикотаж не делает ничего подобного).

Ответы

Ответ 1

Джерси не требует сервлета - отлично работает даже с легким HTTP-сервером, включенным в JDK, или даже работает с инфраструктурой Grizzly NIO (которая похожа на Netty - см. grizzly.java.net). Чтобы увидеть, что нужно, чтобы запустить его с Netty, вы можете посмотреть на модуль jersey-grizzly2 на рабочем месте в Джерси - было бы неплохо, если бы вы были готовы разработать и внести свой вклад в проект Джерси. Теперь, чтобы разочаровать вас, Джерси использует ThreadLocals. Мы планируем внедрить поддержку неблокирующих асинхронных вызовов, но для этого требуется довольно много рефакторинга, поэтому будет поставляться только с версией 2.0 (реализация JAX-RS 2.0 после этого окончательного). Во всяком случае, помимо неблокирующего материала, все же полезно запускать его на основе Grizzly-подобных фреймворков, таких как Netty, для его "легковесности".

Ответ 2

Если вы хотите использовать Jersey с Netty, вам, вероятно, нужно быть в безопасности и использовать org.jboss.netty.channel.socket.oio.OioServerSocketChannelFactory

не

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

Это позволит работать с ThreadLocal при загрузке.

Конечно, когда Jersey обновляется, чтобы не использовать ThreadLocal, но ChannelLocal, это больше не понадобится.

Ответ 3

Если вы хотите, чтобы Джерси работал с Netty, вы можете использовать привязки, доступные в https://github.com/cgbystrom/jersey-netty

Ответ 4

Вы ищете Netty-Servlet-bridge?

Этот проект обеспечивает реализацию API сервлета для платформы Netty.IO(http://netty.io/).

Netty Servlet Bridge позволяет интегрировать существующие веб-приложения на основе Servlet API в инфраструктуру с поддержкой Netty.