前两天要做一个后台线程分片处理任务功能,把应用放在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");
05-08 08:25