【问题标题】:Getting Apache Tomcat server path and port dynamically动态获取 Apache Tomcat 服务器路径和端口
【发布时间】:2014-06-02 19:13:35
【问题描述】:

我在 Apache Tomcat 服务器 上的 Eclipse 中开发了一个 API,它修改了保存在服务器的ROOT文件夹。

Apache Tomcat 安装在我系统的 D 盘中,因此我在 API 中像这样硬编码了该路径

new File("D:\\Program Files\\Apache Software Foundation\\Tomcat 7.0\\webapps\\ROOT\\example\\example.xml")

此外,我已将服务器配置为使用 端口 8080,因此我还像这样在 API 中硬编码了 URI 路径

String uriPath = "http://localhost:8080/example/example2";

而且效果很好。

但现在我想以 WAR 文件的形式在具有 Apache Tomcat 的不同系统上部署相同的 API。

如何以编程方式获取这些系统的 Apache Tomcat ROOT 文件夹路径端口号,以便一个 API 适用于所有系统?如何将其集成到 API 中?

【问题讨论】:

    标签: java apache tomcat


    【解决方案1】:

    JEE 规范中有许多原因说明了为什么您不应该这样做,但除此之外,您可以获得一种与平台无关的方法来确定 tomcat 的位置。

    系统在启动时定义了两个变量,CATALINA_HOME 和 CATALINA_BASE。您应该能够使用 System.getProperty("catalina.base") 从系统中获取 CATALINA_BASE

    从那里你可以假设建立这样的路径:

    final String catalinaBase= System.getProperty("catalina.base");
    final File catalinaBaseDir= new File(catalinaBase);
    final File exampleXML= new File(catalinaBase, "webapps/root/example/example.xml");
    

    至于 URI 路径,this article 应该为您提供足够的参考来做您想做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 2022-06-25
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 2018-08-26
      相关资源
      最近更新 更多