我的Web服务将在Jboss App Server或Websphere应用服务器上运行.对于他们两个,我需要知道实例名称,对于Jboss,我可以使用System.getProperty(“jboss.server.name”),但是可以用于WebSphere?我不能使用WebSphere特定的方法,我需要调用System.properties
谢谢
解决方法
为了保持平台不中断,您可以将变量设置为Websphere服务器的JVM参数(如果其集群则为每个节点一个).对于Websphere 7,您将在管理控制台中找到以下内容:
Servers > Server Types > Websphere application servers > [your cluster node] > > Java and Process Management > Process Definition > Java Virtual Machine > > Generic JVM arguments
并添加一个这样的变量…
-DServerName=serverNodeA
然后,您可以将代码中的值作为…访问
String serverName = System.getproperty("ServerName");
只要您可以访问向JVM添加参数,该技术可以与所有应用程序服务器一起使用.我确定必须有一个Websphere特定的API来查询节点名称,然后你将代码输入到服务器,这使得单元测试变得困难,并且不可移植.我喜欢这种方法.