繁体   English   中英

Tomcat-运行外部JAR / WAR

[英]Tomcat - Running external JAR/WAR

所以我有一个正在运行的Tomcat Web应用程序,具有以下结构:

  • 主Servlet
  • 职业A班
  • B班
  • C类
  • 大量用于各种作业执行的类

该Web应用程序是通过ant编译和部署的。 目前,我在所有课程中都获得了不错的Project.war。

基本上,主Servlet充当调度程序。 根据收到的Web请求,它在新线程中启动Job A,B或C。

我想改进我的应用程序,以便我可以为Job A / B / C重新部署该类,而不影响正在运行的进程。 这是我如何将其概念化:

  • 我部署了主要的servlet,用作调度程序。
  • 我部署A.war,B.war,C.war
  • 我经营B.war
  • 我重新部署A.war,B.war仍在运行
  • 我经营A.war
  • B.war完成后,其输出通过主servlet发送回去。

老实说,我不知道从哪里开始或在哪里看。 我曾考虑过使用ProcessBuilder并在命令行中执行jar / war,但这似乎是最不安全的事情。

任何输入表示赞赏。

谢谢 !

我相信您需要一个模块化的应用程序,其中有多个插件(在您的情况下为Jobs),可以在需要时加载或卸载它们,并在可用时使用。 检查这个 stackoverflow问题,它可以为您提供一些帮助。

但是为简单起见,在上一份工作中,我们需要使用OSGI之类的功能而不使用OSGI,我们使用serviceLoader构建了API,并为我们的模块创建了一个接口(在您的情况下是这样),每个jar都有一个实现该接口的类。 并且一旦需要该作业,就可以从服务加载器中调用它(如果存在)就可以使用它,如果没有抛出任何错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM