如何在 Apache Tomcat 6 服务器中修复 java spring mvc Web 应用程序运行时?

How to fix java spring mvc web application run time in Apache Tomcat 6 server?

提问人:Junaid 提问时间:8/31/2015 更新时间:8/31/2015 访问量:268

问:

我使用 java spring mvc 开发了一个 Web 应用程序。现在我想在 tomcat 服务器上部署应用程序,并希望应用程序在一天中的某个时间段内运行。例如,该应用程序将在每天上午 10:00 至下午 6:00 以及一天中无法使用该应用程序的其他时间运行。我已经搜索了是否可以使用 tomcat 服务器 6 做任何事情,我想部署我的应用程序,但无法获得任何解决方案或线索如何实现目的。所以,我的问题是我怎样才能实现我想做的事情?任何解决方案、样本或想法都对完成任务有很大帮助。

java spring-mvc tomcat Web 应用程序 时间管理

评论

0赞 Akshay jain 8/31/2015
我认为调度器是你想要的东西,最好的是石英调度器示例:-mkyong.com/tutorials/quartz-scheduler-tutorial
0赞 Junaid 8/31/2015
我通过使用自定义拦截器解决了这个问题,该拦截器扩展了spring框架的HandlerInterceptorAdapter。仍然感谢您的石英调度器建议。这次它可能没有派上用场,但肯定会在未来派上用场。

答:

0赞 Mare Geldenhuys 8/31/2015 #1

我认为您正在尝试使用您的基础架构来解决您的问题,而不是在应该解决的地方使用您的应用程序。如果要求在特定时间段内应用程序不可用(这是一项业务要求),请为其编写解决方案。例如,如果登录名超出指定时间段,则可以不允许登录,然后向用户显示消息。可以使用处理程序拦截现有会话,然后使会话无效,强制重新登录。

另一种解决方案是在服务器上运行 cron 作业,该作业会在指定时间停止 Tomcat 并再次启动它。这是不可取的,因为您的用户不会知道操作时间,并且很可能会认为出了问题。

评论

0赞 Junaid 8/31/2015
我最终通过使用自定义拦截器实现了该机制,该拦截器扩展了spring框架的HandlerInterceptorAdapter。在此线程中提供我的解决方案作为答案,以便它可以帮助可能面临类似挑战的其他人。
0赞 Junaid 9/1/2015
好吧,我试图将答案标记为已接受,但它说我可以在两天后将我的答案标记为已接受。
0赞 Junaid 8/31/2015 #2

最后,我实现了在一天内在 tomcat 服务器上运行一定时间的 Web 应用程序的机制。我通过扩展spring框架的HandlerInterceptorAdapter来使用自定义拦截器来拦截所有servlet请求。然后,在 preHandle 函数中,所有 servlet 请求都已传输完毕,然后检查当前时间是否在应用程序将运行的时间段内。如果在时间段内,则允许请求继续,否则重定向到特定页面,提示用户当前无法访问应用程序。