Реализация API сервлета с использованием Netty - PullRequest
16 голосов
/ 16 сентября 2011

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

В основном я 'Я ищу поддержки, достаточной только для того, чтобы заставить Джерси работать (надеюсь, что Джерси не занимается никакими локальными вещами).

Ответы [ 4 ]

14 голосов
/ 17 сентября 2011

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

4 голосов
/ 14 февраля 2012

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

не

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

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

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

2 голосов
/ 02 октября 2011

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

1 голос
/ 11 августа 2013

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

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

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

...