动态获取Apache Tomcat服务器路径和端口

时间:2014-04-18 09:34:49

标签: java apache tomcat

我在 Apache Tomcat服务器上部署的 Eclipse 中开发了 API ,修改了 XML 文件。服务器的 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";

它运作正常。

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

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

1 个答案:

答案 0 :(得分:3)

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应该为您提供足够的参考来做您想做的事。