Внедрение 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.