Как использовать Netty из веб-приложения - шаги для правильной настройки - PullRequest
0 голосов
/ 20 апреля 2011

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

Я нашел следующий документ: http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description, который описывает, как настроить файл web.xml, запускающий сервлет Netty.

Теперь в документе написано:

Во-вторых, вы должны связать свое серверное приложение на базе Netty в том же контексте сервлета или в загрузчике общего класса, используя локальный транспорт (см. LocalServerChannelFactory.) Вы можете использовать свою любимую среду IoC, такую ​​как JBoss Microcontainer, Guice,и весна, чтобы сделать это.В следующем примере показано, как привязать эхо-сервер к конечной точке, указанной выше (web.xml) в JBossAS 5:

Это звучит разумно, но мне не совсем понятно, как - практически - это должно работать.Скажите, что я хочу использовать Spring в качестве контейнера Ioc. Какая будет правильная конфигурация bean-компонентов для привязки netty к локальному транспорту?

Кроме того, как мне запустить контекст Spring?Из web.xml?

Спасибо

1 Ответ

5 голосов
/ 26 апреля 2011

Я лично рекомендую использовать пружину.Он может интегрироваться практически со всем на свете.

Взгляните на следующую ссылку , которая показывает, как настроить сервер Netty в качестве пружинного компонента, а затем использовать его в веб-приложении.

Это способ сделать это для веб-приложения Spring +.

1) Create relevant spring beans for the server, pipeline factory etc.
2) In the web.xml configure the spring dispatcher servlet.

Примечание : приведенная выше конфигурация предназначена для запуска сервера Netty на каком-либо портувместе с вашим веб-приложением.

По сути, вы можете вызывать атрибут init-метода Spring Bean для любого компонента для запуска Netty-сервера

Вы можете настроить сервлет, как указано в ссылке в вашемсообщение.Вы можете сделать перекрестную ссылку на любой bean-компонент Spring (например, bean-компонент netty) внутри bean-компонента сервлета или вызвать его в init-методе вашего bean-компонента сервлета.

Еще одна возможность состоит в том, что вы можете прослушивать события приложения Springзатем, после запуска контейнера, вы можете вручную запустить свой сервлет / нетти-сервер.

Если вы используете приложение grails, то класс начальной загрузки (вспомогательный класс, который вызывается при запуске приложения) можно использовать длязапуск сервера Netty при запуске веб-приложения

Spring предоставляет n-количество способов сделать то, что вам нужно, вы можете выбрать в зависимости от вашего удобства.

...