我一直在研究 Apache commons-daemon
,它看起来很酷:基本上它是一个 API 以及一个库,可以帮助您在底层操作系统中注册您的 JAR,以便它可以像守护程序服务一样启动和停止。此外,它拦截通常会杀死您的应用程序的操作系统信号,而是让您有机会礼貌地关闭。
所以这让我想知道,如果可以选择在 EJB 中部署业务逻辑和将它们包装在像 OGS 或 JBoss 这样的容器中,为什么不创建一个监听端口并响应客户端请求的守护程序 JAR?
仅仅是应用程序容器提供的所有开箱即用的功能/服务(安全性、日志记录等)的好处,还是有时选择守护程序而不是应用程序容器/EJB 解决方案更有利?
基本上,我要问的是:什么时候更适合使用应用程序容器/EJB 解决方案,什么时候更适合用于commons-daemon
帮助构建系统级服务(在 Java 中)?
免责声明:仅对这两个选择感兴趣,我知道存在其他解决方案(Web 容器、ESB、OSGi 等)。但是出于这个问题的目的,我只对听到应用程序容器或守护程序解决方案之间的推理感兴趣。提前致谢!