我有一个应用程序,它被打包成战争然后部署在TomEE中。 我们都很高兴。
但是,在这个应用程序中,我有一个服务,而不是一个Web服务,只是一个不提供任何响应的servlet,只是为了做一些事情,比如启动一个作业调度程序。目前我通过一个ant任务启动这个作业调度程序,该任务调用一个调用该服务的类。
我关心的是什么?
我希望在我的应用程序部署完成后立即启动此作业调度程序,小心,而不是在部署时,但部署后,因为如果是在部署过程中,请猜猜是什么,我想要打电话给尚未部署的东西, voila ,致命的404。
我尝试了什么?
所以,如果您可以帮我提出如何在部署应用程序后启动某些内容,我将非常感谢您。
谢谢你,
安德烈
答案 0 :(得分:0)
目前我会描述我为解决问题所做的工作,但在我看来,这只是一种解决方法。
正如我在第一篇文章中所说,我有一堆servlet,其中一个是专门针对特定的调用而构建的。
让我添加更多细节。
在我的应用程序中,我也有一个spring-framework上下文。
考虑到这一点,我有一个org.springframework.web.servlet.DispatcherServlet
映射到一个网址模式,如“* .srv”(来自服务的srv),并处理一些http调用,如“开始”,“停止”,“状态” ,所有这些操作都与我的作业调度程序有关。
我的问题是“如何调用其中一种方法(例如:http://localhost:8080/myApp/start.srv
)部署后?”。
经过一番研究,我发现tomcat最后部署的元素是http上下文,所以如果我尝试配置一个servlet init方法通过http调用来调用服务,http应该由尚未部署的应用程序提供,我得到一个404(这是逻辑,因为最后部署了http上下文,并且无法进行http调用)。
阅读完之后,我又沿着另一条道路(到了解决方法),我从这里得到了一些帮助
http://sujitpal.blogspot.ro/2007/03/accessing-spring-beans-from-legacy-code.html
我已经加入了处理“start”,“stop”和“status”请求的bean(在正常条件下只能通过http调用调用的bean)。
但是,这个问题仍然存在。我仍然想知道它是否是一种配置tomcat以在部署过程之后运行某些东西的方法。
如果我不够清楚,请告诉我。
祝你有个美好的一天 安德烈