Java应用程序/线程服务器

3
我正在寻找一个非常接近应用服务器的东西,具有以下功能:
  • 它应该处理一系列线程/守护进程,允许用户启动-停止-重新加载每个线程/守护进程而不影响其他线程/守护进程
  • 它应该在不同的线程/守护进程之间保持库的分离
  • 它应该允许共享某些库
目前,我们有一些遗留代码重新发明轮子...并且形状也不是完全圆形的!我想使用Tomcat,但我不需要Web服务器,除了可能用于简单的后台用户界面(/manager/html)。
有什么建议吗?是否有非Web应用程序服务器,或者是否有比Tomcat更好的替代方案(例如更轻量级或更容易配置)?谢谢。
4个回答

4

你看过OSGi吗?它可以独立加载/卸载bundles(基本上是带有元数据的.jar文件),并可选择在这些之间定义依赖关系(使用软件生命周期定义,使得bundle知道其他bundle何时被加载/卸载)。


OSGI是一项规范,而不是一个服务器。您推荐任何特定的软件吗? - skaffman
是的。我不会 :-) 除此之外,我有一点儿使用过Apache Felix - http://felix.apache.org/site/index.html和Newton框架 - http://newton.codecauldron.org/site/index.html。但都不是很深入。 - Brian Agnew

2
我发现Jetty的“contexts”概念在处理应用程序(以WAR包和Servlet上下文监听器打包)方面非常有用,其中在contexts/中放置的xml文件完全描述了您要启动的内容。当您再次删除xml文件时,所述内容会停止。
如果您不启动服务器连接器,则只会有一个启动-停止的操作,这听起来就像您正在寻找的内容。
Jetty可以被制作得非常小,因此开销不大。

1
你可以考虑使用Spring dmServer。它是一个非常非传统的应用服务器,具有非常轻量级的OSGi核心(例如,Web容器是可选的),但它提供了类加载器隔离和基本容器服务。它不是JavaEE容器,但附带了插件模块。
你仍然需要自己进行很多工作,但dmServer的基础非常可靠。

1
没有人阻止您使用HTTP协议发送二进制和文本数据而不是HTML页面。这就是Servlet的作用。因此,我建议使用Tomcat服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接