gpt4 book ai didi

java - 以编程方式获取 Tomcat 的 "appBase"目录?

转载 作者:行者123 更新时间:2023-11-28 22:17:40 25 4
gpt4 key购买 nike

默认情况下,appbase 被配置为指向 TomEE 的 webapps 文件夹:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

我想以编程方式找到“appBase”的位置,因为它指向我们的生产服务器和我们的开发箱上的不同位置(并且因为这样会更干净)。

我研究了几个选项,似乎对其他人有效的选项是调用 ServletContext().getRealPath("/")。对我来说,这会将我带到一个临时文件夹 $CATALINA_HOME/temp/[#-AppName],而默认情况下我正在寻找 $CATALINA_HOME/webapps

最佳答案

我根据其他人在 this question. 上写的内容找到了答案

从 Tomcat 的主机类中,您可以找到应用程序库:

    MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName name = new ObjectName("Catalina", "type", "Server");
Server server = (Server) mBeanServer.getAttribute(name, "managedResource");
Service service = server.findService("Catalina");
Engine engine = (Engine) service.getContainer();
Host host = (Host) engine.findChild(engine.getDefaultHost());

host.getAppBase(); //Got it.

关于java - 以编程方式获取 Tomcat 的 "appBase"目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39018591/

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