[英]Getting Apache Tomcat server path and port dynamically
我在Apache Tomcat Server上部署了Eclipse中的API ,它修改了保存在服务器ROOT文件夹中的XML文件。
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。
如何以编程方式获取这些系统的Apache Tomcat ROOT文件夹路径和端口号 ,以便一个API适用于所有系统? 如何将其集成到API中?
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路径, 本文应该为您提供足够的参考来做您想做的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.