2013-02-12 36 views
0

我有一个RAP应用程序,我们将其部署到Tomcat实例中。该应用程序在第一次启动时会做一些额外的工作。如何启动我的RAP应用程序以在启动后立即触发热身

当前,当第一个用户在浏览器中打开网页时,由于这个一次性初始化工作,需要相当长的时间直到应用程序准备就绪。

这对于可用性很差,因为第一个用户需要等待很长时间直到启动工作完成。

有没有办法在Tomcat启动后触发或模拟第一个会话,以便我们可以预热应用程序,第一个用户可以快速收到反馈?

我试图通过URLConnection做一些简单的URL请求来模拟浏览器,但似乎触发新会话的协议并不重要。

我也尝试使用HtmlUnit来请求启用JavaScript的页面,这在一定程度上有效,但HtmlUnit对于这个简单的步骤非常沉重。

那么是否有官方的API或至少某种解决方法允许我预先启动和初始化应用程序?

回答

3

除非此初始化需要UI会话(即用户),否则ApplicationConfigurationconfigure方法可能是合适的地方。但是,在这一点上,ApplicationContext尚未完全建立,因此可能为时尚早。此外,如果您的应用程序基于工作台和扩展点,则不会拥有您自己的ApplicationConfiguration。

你介意打开一个错误报告(http://eclipse.org/rap/bugs)并描述你的用例吗?我认为我们应该为应用程序设置和清理提供某种钩子,例如一个ApplicationContextListener?

+0

谢谢,我打开了https://bugs.eclipse.org/bugs/show_bug.cgi?id=401219,我们通过使初始化工作独立于RAP/RWT并作为Tomcat启动的一部分来解决它。 – centic 2013-02-19 18:13:20