列出WebSphere7中的系统属性

列出WebSphere7中的系统属性,websphere,websphere-7,Websphere,Websphere 7,我有一个WebSphereApplicationServer7的运行实例,我需要知道Java系统属性的当前值 jvm = AdminControl.completeObjectName('WebSphere:type=JVM,process=YourServerName,*') AdminControl.invoke(jvm,'getProperty','user.timezone') 有没有办法得到这些信息 (我想知道侵入性最小的方法,因此不考虑添加打印属性的JSP)如果没有更好的选择,直接

我有一个WebSphereApplicationServer7的运行实例,我需要知道Java系统属性的当前值

jvm = AdminControl.completeObjectName('WebSphere:type=JVM,process=YourServerName,*')
AdminControl.invoke(jvm,'getProperty','user.timezone')
有没有办法得到这些信息


(我想知道侵入性最小的方法,因此不考虑添加打印属性的JSP)

如果没有更好的选择,直接将JSP部署到文件系统或通过控制台的单文件部署应该不会太侵入性。特别是考虑到您不必实际更改构建的WAR文件来在其上部署独立的JSP。

触发线程转储(javacore)。这将需要几秒钟的时间,几乎不会引起注意。线程转储将在其信息部分列出JVM的所有环境属性。搜索标志1 IENVVAR,2 IENVVAR,如下面的代码段所示

...
1CIENVVARS     Environment Variables
NULL           ------------------------------------------------------------------------
2CIENVVAR      _=/WebSphere/AppServer/java/bin/java
2CIENVVAR      LANG=en_US
2CIENVVAR      CONFIG_ROOT=/WebSphere/AppServer/profiles/Srv02/config
2CIENVVAR      LOGIN=wasadmin
2CIENVVAR      SSH_TTY=/dev/pts/1
2CIENVVAR      CLCMD_PASSTHRU=1
2CIENVVAR      PATH=/WebSphere/AppServer/java/ibm_bin:/WebSphere/AppServer/java/bin/:/WebSphere/AppServer/java/jre/bin:/WebSphere/AppS
...

我可以通过
wsadmin
脚本按名称获取特定属性,但似乎没有一种等效的方法列出“所有”属性

jvm = AdminControl.completeObjectName('WebSphere:type=JVM,process=YourServerName,*')
AdminControl.invoke(jvm,'getProperty','user.timezone')
这可能对您没有帮助,但如果将来有人有类似的需求,这里有几个Jython命令来检索标准系统属性之一

jvm = AdminControl.completeObjectName('WebSphere:type=JVM,process=YourServerName,*')
AdminControl.invoke(jvm,'getProperty','user.timezone')

我知道你说过。。。但是添加JSP非常不具感染性:-)只需将文件复制到
installedApps
层次结构中的正确目录,甚至不修改war。除非你以后需要经常这样做。只是说,'.@dbreaux谢谢你的评论,但我无法轻松访问文件系统。这很公平。您可以通过WAS控制台进行部署吗?如果是这样,您可以在已部署的WAR之上部署单个文件。仍然不需要修改正式的战争。您只需要在某个时间点检查值?@dbreaux这是一个生产环境,我不希望要求部署,但这可能是一个选项。如果我找不到更好的替代方案,你可以用你的评论写一个答案。我一直在寻找通过wsadmin脚本获取此信息的方法,但我发现的一切似乎都只返回你通过一种配置机制定义的属性,而不是JVM隐式定义的属性。尽管,这些不是System.properties.Hmm,没错,dbreaux,我肯定错过了。与threaddump中列出的所有命令行参数(-D,-X选项)相结合,环境属性可以很好地洞察JVM,因为依赖于系统的system.properties的初始值是从环境变量派生的。但一旦使用system.setProperty初始化JVM,您可能会更改系统属性,这些属性不容易跟踪。@kurtcebe这些实际上是环境变量,而不是系统属性:(在我的例子中,我需要检查java.io.tmpdir,所以这对我来说很有效。