2013-10-18 23 views
2

在春季部署了一个java项目后,我可以在一段时间后自动调用jsp,而不向服务器发送任何请求?java:可以一个服务器(glassfish/tomcat)自动调用一个jsp吗?

我们可以使用.bat文件或.exe吗?

任何建议

感谢

+0

你是什么意思“...没有发送任何请求到服务器?” ? –

+0

其实我正在检索邮件并在我的本地数据库中倾销,并且每15分钟就会发送几乎50封邮件,所以有时浏览器未启动,但服务器始终启动。这就是为什么我想在一段时间后在后台运行一些方法...... – user2893493

+1

你应该阅读Spring中的任务调度http://docs.spring.io/spring/docs/3.1.x/spring-framework-reference /html/scheduling.html – Keerthivasan

回答

0

使用过滤器监测请求,然后调用一个jsp

0

你应该产生一个线程,让它做的电子邮件检索和倾倒电子邮件给DB。您可以使用在web.xml中注册的ServletContextListener实现来启动此应用程序部署的线程。以下文章可能会帮助您了解更多细节。

http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html

http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/

+0

在JavaEE7之前,你不应该运行你自己的线程。在Java EE7中,您拥有服务器托管线程。 – Thomas

+0

@Thomas你的意思是不建议创建自己的主题? –

+0

确实,尽管很多人都这么做,如果你真的知道自己在做什么,这可能会很好。 (特别是在servlet-only/tomcat/spring context quartz/spring scheduling中是一个不错的选择,但是当你运行完整的EE栈时,我建议小心。)另请参见:http://stackoverflow.com/questions/533783 /为什么 - 产卵线程在java -ee-container-is-discouraged/533847#533847 – Thomas

0

据我所知一个服务器不能自动调用JSP(只能进行自动编译)。它的任务超出了服务器的本质。应用程序服务器云只能通过请求执行jsp页面。您可以开发一个工具(以java为例),它可以通过请求某个jsp页面或直接执行jsp页面的.class文件来模拟对服务器的请求。另一个解决方案是通过命令行通过telnet向服务器发送http请求,您可以将其放入.bat文件并在部署后执行。您也可以使用http://curl.haxx.se/工具从命令行执行任何类型的请求到您的服务器。

的telnet例如:

的telnet 127.0.0.1 8080

然后

GET /myapp/index.jsp

0

如果你想使用请求触发服务器端行为,你应该真的考虑到使用EJB-Timer作为替代。

另一种选择是使用您的基础设施(cron,Windows调度程序)发出请求。

相关问题