前两天要做一个后台线程分片处理任务功能,把应用放在tomcat中部署在多个服务器上,每个服务器分片处理一些任务,这里需要在java代码中获取到tomcat的信息和服务器信息。在网上找了好久,终于找到了解决办法:
1.获取服务器IP
String localIP = InetAddress.getLocalHost().getHostAddress();
//这里获取的就是服务器的外网IP,作为应用的标识
2.获取Tomcat的服务名
之前在WebLogic中,直接在Java代码中,
String hostName = System.getProperty("weblogic.Name");
//这样就可以获取WebLogic名
但是在Tomcat7中必须要先配置然后才能获取
window下:
在bin下的catalina.bat文件或startup.bat中增加
set JAVA_OPTS=-DtomcatName="Tomcat7-001"
linux下,在bin下的catalina.sh文件或startup.sh中增加
JAVA_OPTS="-server -DtomcatName=Tomcat7-001"
然后在java代码中
String serviceName = System.getProperty("tomcatName");