0

我正在尝试将Netty设置为嵌入到我的 Web 应用程序中运行。

我找到了以下文档:http ://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description ,它描述了如何配置 web。启动 Netty servlet 的 xml 文件。

现在文件说:

其次,您必须使用本地传输将基于 Netty 的服务器应用程序绑定到相同的 Servlet 上下文或共享类加载器空间中(请参阅 LocalServerChannelFactory。)您可以使用您最喜欢的 IoC 框架,例如 JBoss Microcontainer、Guice 和 Spring 来执行此操作. 以下示例显示了如何在 JBossAS 5 中将回显服务器绑定到上面指定的端点 (web.xml):

这听起来很合理,但我不清楚 -实际上- 这应该如何工作。假设我想使用 Spring 作为 Ioc 容器,将 netty 绑定到本地传输的正确 beans 配置是什么?

另外,如何启动 Spring 上下文?来自 web.xml?

谢谢

4

1 回答 1

5

我个人推荐使用弹簧。它可以与阳光下的几乎所有东西融为一体。

查看以下链接,该链接展示了如何将 Netty 服务器配置为 Spring bean,然后在 Web 应用程序中使用它。

这是您可以为 spring + web 应用程序执行此操作的方式。

1)为服务器、管道工厂等创建相关的spring bean。
2) 在 web.xml 中配置 spring dispatcher servlet。

注意:上面的配置是为了在你的 web 应用程序的某个端口上运行 Netty 服务器。

基本上你可以在任何 bean 上调用 spring bean init-method 属性来启动 netty 服务器

您可以按照帖子链接中的说明配置 servlet。您可以在 servlet bean 中交叉引用任何 spring bean(比如 netty 服务器 bean),或者在 servlet bean 的 init 方法中调用它。

另一种可能性是您可以监听 Spring 应用程序事件,然后在容器启动后,您可以手动启动您的 servlet/netty 服务器。

如果您使用的是 grails 应用程序,那么 bootstrap 类(在应用程序启动时调用的便利类)可用于在 Web 应用程序启动时启动 Netty 服务器

Spring 提供了 n 种方法来做你需要的事情,你可以根据自己的方便进行选择。

于 2011-04-26T17:13:37.630 回答