gpt4 book ai didi

java - 在网络服务器关闭时调用 contextDestroyed 方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:19 24 4
gpt4 key购买 nike

我创建了一个只有一个 servletContext 监听器的 Web 应用程序。

下面是代码:我曾尝试使用 Runtime.getRuntime() 但这不起作用。因此,虽然谷歌搜索遇到了 ProcessBuilder 但它也不起作用。

我可以通过从 UNIX 机器上的控制台运行来执行脚本。

下面代码的目的是执行 sh 脚本,例如每当服务器出现故障时捕获 echo Hello > test.txt 之类的内容。但是当服务器出现故障时,该脚本不会被执行。不确定为什么 conextDestroyed 没有被调用,或者如果 conextDestroyed 被调用,为什么脚本没有被执行。

public class MyTestContextListener implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
ProcessBuilder pb = new ProcessBuilder("/bin/bash","/local/test/tomcatContextTest/tomcatContextListener.sh");
try {
pb.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}

@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub

ProcessBuilder pb = new ProcessBuilder("/bin/bash","/local/test/tomcatContextTest/tomcatStartContextListener.sh");
try {
pb.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

最佳答案

您是否已将 ServletContextListener 放入 web.xml 中?

看看这个例子:http://www.javabeat.net/2009/02/servletcontextlistener-example/

关于java - 在网络服务器关闭时调用 contextDestroyed 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com