【问题标题】:TomEE/Tomcat - Run something after deploymentTomEE/Tomcat - 部署后运行一些东西
【发布时间】:2014-09-11 11:59:49
【问题描述】:

我有一个应用程序,它被打包到一个战争中,然后部署在 TomEE 中。 我们都对此感到满意。

但是,在这个应用程序中,我有一个服务,而不是一个 Web 服务,它只是一个不给出任何响应的 servlet,只是为了做一些事情,比如启动一个作业调度程序。目前,我通过一个 ant 任务启动此作业调度程序,该任务调用一个调用该服务的类。

我担心什么?

我想在我的应用程序部署完成后立即启动这个作业调度程序,小心,不是在部署时,而是在部署之后,因为如果是在部署过程中,猜猜是什么,我想要调用尚未部署的东西,,致命的 404。

我尝试了什么?

  • TomEE/Tomcat 上下文监听器 - 这些在部署过程中执行;
  • 带有 load-on-startup 标记的 Servlet 实现,而且我确信我的 servlet 是最后一个执行的 servlet - 这些也在部署过程中执行;
  • 上面介绍的方法,但有一些内部线程,我试图让 TomEE 完成他的部署过程,但这些内部线程似乎也让 TomEE 进入睡眠状态。

所以,如果您能帮助我提出如何在部署应用程序后开始某事的建议,我将非常感谢您。

谢谢你,
安德烈

【问题讨论】:

  • 当你得到“404”时,不清楚你在做什么。您是否在启动时在服务器上运行某个充当客户端并调用另一个 Servlet 的东西?
  • @SiKelly 实际上,您提到的那两个部分(客户端和“另一个 Servlet”)在同一个应用程序中,我想部署它。在这个应用程序中,我有一堆 servlet,其中一个是为仅响应特定的 http 调用而构建的。我想要一个允许我执行 servlet init 方法(或类似的方法)并在此方法中调用该特定 http 链接的解决方案。但是这个调用必须在部署完成后才能完成,因为如果不是这样,响应该特定链接的 servlet 也不可用。
  • 这更没有意义!如果将进行调用的 Servlet 和将处理它的 Servlet 在同一个应用程序中 - 为什么要进行 HTTP 调用?为什么不只是一个简单的方法调用?
  • 好的,问题通过方法调用完全解决了,你是对的。但正如我在下一篇文章末尾所写的那样,找到一种在 TomEE/Tomcat 上完成应用程序部署后可以执行操作的方法可能会非常有趣。

标签: java tomcat servlets deployment apache-tomee


【解决方案1】:

目前我将描述我为解决我的问题所做的工作,但我认为这只是一种解决方法。

正如我在第一篇文章中所说,我有一堆 servlet,其中一个是专门为执行特定调用而构建的。
让我添加更多细节。
在我的应用程序中,我也有一个 spring-framework 上下文。 考虑到这一点,我有一个org.springframework.web.servlet.DispatcherServlet,它映射到像“*.srv”(来自服务的 srv)这样的 url 模式上,并处理一些 http 调用,比如“start”、“stop”、“status”等这些操作与我的作业调度程序有关。

我的问题是“如何调用这些方法之一(例如:http://localhost:8080/myApp/start.srv部署后?”。
经过一番研究,我发现tomcat最后部署的元素是http上下文,所以如果我尝试配置一个servlet init方法通过http调用调用服务,该调用应该由尚未部署的应用程序提供,我得到一个 404(这是逻辑,因为 http 上下文是最后部署的,并且无法进行 http 调用)。

阅读后,我遵循了另一条路径(解决方法),我从这里得到了一些帮助

http://sujitpal.blogspot.ro/2007/03/accessing-spring-beans-from-legacy-code.html

并且我已经访问了处理“开始”、“停止”和“状态”请求的 bean(在正常情况下仅通过 http 调用调用的 bean)。

但是,这个问题仍然悬而未决。我仍然想知道这是否是一种配置 tomcat 以在部署过程后运行某些东西的方法。

如果我不够清楚,请告诉我。

祝你有美好的一天,
安德烈

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多