请注意,我不是此应用的开发者,我意识到可能有更好的方法来实现它。但是,我有以下目标:
当tomcat在RHEL服务器上启动时,我需要自动执行jsp页面。唯一的标志是它们是需要传递的三个URL参数。
以下是网址的示例:
http://www.myurl.com/app/getlistdata.jsp?param1=P1¶m2=P2¶m3=P3
在我的web.xml中,我有以下内容,但它似乎没有自动加载。我想我可以修改start_tomcat脚本以包含一个wget,但我希望将它独立于它所部署的服务器。
<servlet>
<servlet-name>getlistdata</servlet-name>
<jsp-file>/getlistdata.jsp</jsp-file>
<init-param>
<param-name>param1</param-name>
<param-value>P1</param-value>
</init-param>
<init-param>
<param-name>param2</param-name>
<param-value>P2</param-value>
</init-param>
<init-param>
<param-name>param3</param-name>
<param-value>P3</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
答案 0 :(得分:2)
正如@home所说 - Init属性不是请求参数 - 所以你的意思是什么? JSP用于将视图呈现给浏览器,作为对请求的响应。在Tomcat启动时执行此操作毫无意义,因为没有请求。
看看JSP。也许它使用Java Bean来进行一些处理。如果您可以将此处理移动到Context Listener,那将起作用:
在你的web.xml中:
<listener>
<listener-class>
path.to.YourListener
</listener-class>
</listener>
然后创建一个java类:
public class YourListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
// this will execute when tomcat initialized the web application (on startup)
// so whatever your JSP was doing, you can do in here instead.
}
}
不是你要求的,但这是你能做的最接近的,AFAIK。
答案 1 :(得分:0)
使用的解决方案是向startup_tomcat脚本添加curl命令。
URL="http://SOMEURL.COM/GOES/HERE"
nohup curl $URL >> /home/tomcat/log &
exit
虽然有许多技术原因没有这样做,但它符合提供的业务要求。