我一直在研究Apache的commons-daemon
,它看起来很酷:基本上它是一个API以及一个帮助您将JAR注册到底层操作系统的库,以便它可以像守护程序服务一样启动和停止。此外,它拦截通常会杀死你的应用程序的操作系统信号,而不是礼貌地关闭。
所以我想知道,如果在EJB中部署业务逻辑并将它们包装在像OGS或JBoss这样的容器中之间做出选择,为什么不创建一个监听端口并响应客户端请求的守护进程JAR? / p>
是否只是app容器提供的所有功能/服务的好处(安全性,日志记录等),或者有时候在app容器上选择守护进程是有利的/ EJB解决方案?
基本上,我问的是:什么时候更适合使用app容器/ EJB解决方案,什么时候使用commons-daemon
来帮助构建系统级服务更合适(在Java中)?
免责声明:对这两个选择感兴趣,我知道存在其他解决方案(Web容器,ESB,OSGi等)。但出于这个问题的目的,我只对听到app容器或守护进程解决方案之间的推理感兴趣。提前谢谢!
答案 0 :(得分:0)
嗯,简单的答案是肯定的,应用服务器(Glassfish或JBoss)为您提供了很多好东西,您必须在纯Java SE应用程序中实现或设置。
然而,它不是那么黑白,你可以用很少的努力获得很多应用程序服务器的优点,我正在编写一个关于这个主题的blog series。
我不使用应用服务器的原因是,我们有一个广泛分布的软件产品项目,我们希望避免修补和维护数千个应用服务器实例!
但是,如果您的应用程序将在一个地方运行,则没有理由去Java SE。
答案 1 :(得分:0)
为什么不把它看作系统级(守护程序)和应用程序级别(在容器中)?
这将给出或多或少的明显区别(特别是如果在某些时候与Linux合作)。
对于守护进程:
对于容器: