gpt4 book ai didi

tomcat - 当 WAR 文件启动时检测 tomcat 的版本(如果它不在推荐的版本上可能会停止它)

转载 作者:行者123 更新时间:2023-11-28 22:13:35 26 4
gpt4 key购买 nike

我有一个 Java Web 应用程序 (WAR),我希望能够在其中检测哪个版本的 tomcat 正在启动它。有可能吗?

如果是这样,我也想研究如何停止不合适的tomcat的应用程序。

我的(幼稚的)Google 搜索对我没有帮助

哈蒂姆

最佳答案

您可以创建一个新的 Listener,实现 ServletContextListener 接口(interface),并将其添加到 web.xml

<listener>
<listener-class>cl.tests.servlet.MyServletContextListener</listener-class>
</listener>

然后,在 Listener 上,找到服务器名称/版本,如果不是您想要的,则抛出运行时错误

package cl.tests.servlet;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyServletContextListener implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {
}

@Override
public void contextInitialized(ServletContextEvent arg0) {

// Find where am I running...
String str1 = arg0.getServletContext().getServerInfo();
System.out.println("Detected runtime : " + str1);

if (str1.indexOf("Apache Tomcat/7") < 0)
throw new RuntimeException("Not a Tomcat 7 server.");
}
}

这将阻止整个 war 的开始。

关于tomcat - 当 WAR 文件启动时检测 tomcat 的版本(如果它不在推荐的版本上可能会停止它),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17472316/

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