方案 - EAR安装在Websphere应用程序服务器上,并在超过30个JVM上运行。我只想在一个JVM上创建一个属性,并且想在我的java代码中读取它。 如何通过WAS控制台创建JVM级别属性并使用Java读取它。JAVA中的JVM属性
3
A
回答
2
创建自定义属性格式
在WAS(服务器)或部署管理器管理控制台,导航到 服务器> ServerTypes>的WebSphere应用服务器对自定义属性 并点击JVM要在其中创建
服务器基础结构(部分)> Java和进程管理>进程定义
附加属性(部分)> Java虚拟机>对自定义属性
单击“新建”按钮添加新的自定义属性。
点击“应用”。 直接点击'保存'到主配置。
在独立或单节点环境中,您需要停止并重新启动服务器才能使更改生效。
在您定义部署管理器中的属性的集群环境中,您可能需要执行“完全重新同步”并重新启动集群。
- 通过Java代码
访问在WebSphere Application Server或您定义的属性节点中定义自定义属性后,您可以像你将一个系统访问其值属性如下:
String custProperty = System.getProperty("wbe.home");
您可以同样使用在JSP页面的小脚本是这样的:
<%
String custProperty = System.getProperty("wbe.home");
if (custProperty .equalsIgnoreCase("home")) {
%>
如果你想自动添加自定义属性30 JVM的 您可以使用Jython脚本的手动任务。您可以根据您的要求进行修改。
server = sys.argv[0]
property = sys.argv[1]
value = sys.argv[2]
if (len(sys.argv) == 4):
descr = sys.argv[3]
else :
descr = None
# Convert a list of items separated by linefeeds into an array
def getListArray(l):
return l.splitlines()
# Obtain the "simple" server name
def getServerName(s):
return AdminConfig.showAttribute(s, 'name')
# Add common attr list to specified Server's JVM
def addPropertiesToServer(s):
jvm = AdminConfig.list('JavaVirtualMachine', s)
# Look for existing property so we can replace it (by removing it first)
currentProps = getListArray(AdminConfig.list("Property", jvm))
for prop in currentProps:
if property == AdminConfig.showAttribute(prop, "name"):
print "Removing existing property from Server %s" % getServerName(s)
AdminConfig.remove(prop)
# Store new property in 'systemProperties' object
print "Adding property to Server %s" % getServerName(s)
AdminConfig.modify(jvm,[['systemProperties',attr]])
# Construct list with new property name and value
attr = []
if (descr is None):
print "Adding property %s=%s" % (property,value)
attr.append([['name',property],['value',value]])
else:
print "Adding property %s=%s,%s" % (property,value,descr)
attr.append([['name',property],['value',value],['description',descr]])
# Locate all Application Servers if server is 'all'
if (server == 'all'):
servers = AdminConfig.list('Server')
for aServer in getListArray(servers):
type = AdminConfig.showAttribute(aServer,'serverType')
if (type == 'APPLICATION_SERVER'):
addPropertiesToServer(aServer)
# TODO: support comma-separated list of servers
else:
# Locate specified Server and its JVM
server = AdminConfig.getid('/Server:'+server+'/')
addPropertiesToServer(server)
# Save changes
if (AdminConfig.hasChanges()):
AdminConfig.save()
+0
如果您必须将此应用于ND中的30台服务器,则应该对其进行编写脚本。 – Alasdair
0
您可以创建在群集级别在WebSphere变量上您的服务器从运行:
Environment --> WebSphere Variable --> <SelectYour_cluster_From_Dropdown> --> New
说,如果变量名是“MY.CUSTOM.PROPERTY”那么你就可以通过编写以下代码在您的java代码中访问它:
String myCustomProperty = (String) System.getenv("MY.CUSTOM.PROPERTY");
希望这适用于您。
相关问题
- 1. Java jvm选项覆盖属性文件内的属性
- 2. 无法在访问JVM自定义属性在Java中
- 3. 1.5 JVM上的Java 1.4类性能
- 4. JVM属性-Dfile.encoding = UTF8或UTF-8?
- 5. log4j和websphere JVM自定义属性
- 6. Java中较低的属性
- 7. java中的属性文件
- 8. java中的不变性属性
- 9. 通过编程设置码头:命名的Java的Mac OS X JVM属性
- 10. Java的String属性
- 11. 的Java ZipFileSystem属性
- 12. 8.5.5中的自定义JVM属性为空
- 13. 在JVM启动时从.jar中设置.properties文件的属性
- 14. 由JVM或硬件引起的Java中的可见性问题?
- 15. 检索属性和Java中
- 16. 在java中设置属性
- 17. 将注释属性加载到java中的属性对象
- 18. 最终属性中的Spring属性注入@Value - Java
- 19. Mule属性在Java属性中占位符的访问权限
- 20. 使用sed更新java属性文件中的属性
- 21. java spring - 覆盖属性文件中的属性值
- 22. groovy中的java类的metaClass属性
- 23. JAVA DOM xml属性
- 24. Java Swing属性(addPropertyChangeListener)
- 25. Java属性绑定
- 26. Java属性绑定
- 27. Java类的外部属性
- 28. Java属性的HashMap阅读
- 29. Java JVM HotSwap行为
- 30. 读取位于JVM lib目录中的测试中的属性文件
对于30个实例,我建议您检查[Apache Zookeeper](http://zookeeper.apache.org/)。 –
您可以使用JNDI替代..通过在群集级别创建它将可用于30多个JVM ... – Nayeem