2

我们目前正在开发一个小型应用程序,它需要通过专有的 tcp 协议与机器接口进行通信。

对于这种低级通信的东西,我们使用 Netty 来实现必要的编码器和解码器。由于我们还需要一些 Java EE 的东西,例如 WebService、JPA 等,我们考虑将 netty 服务器集成到 Java EE 6 应用程序中。因此,我们将使用 ApplicationScoped 托管 CDI bean,其中在 PostConstruct 方法中触发引导,并在 PreDestroy 回调中完成取消注册。

所以主要问题是:

这会导致问题吗,因为据我所知,技术上不允许在 Java EE 环境中启动线程(我认为 Netty 在这里启动了一些线程)?

如果是,有哪些问题?由于我们不需要集群,我们只需要使用像 GlassFish 这样的标准 Java EE 6 应用服务器。

4

1 回答 1

0

大多数人会反对它,因为不正确的终止和资源锁定会导致灾难性的结果。但是,如果您知道自己在做什么,就没有理由不这样做。

也就是说,根据您的需要,我建议您首先研究 Java 连接器架构。它已经为连接、交易、安全、生命周期、工作等管理提供了既定的合同。因此,您有更好的机会编写一个好的实现并将线程管理转移到容器。看到这个这个让你开始。

于 2013-03-12T15:51:50.620 回答