方案 - 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. 在Windows 7上,Java JVM如何設置「user.home」系統屬性?
- 4. 1.5 JVM上的Java 1.4類性能
- 5. 從命令行訪問JVM屬性
- 6. 如何刪除JVM屬性「https.proxyHost」?
- 7. JVM屬性-Dfile.encoding = UTF8或UTF-8?
- 8. JVM如何讀取系統屬性?
- 9. log4j和websphere JVM自定義屬性
- 10. Java中的屬性表
- 11. java中的系統屬性
- 12. Java中較低的屬性
- 13. java中的屬性文件
- 14. Java中的靜態屬性
- 15. 從文件系統中刪除WAS 7中的JVM屬性
- 16. 閱讀Maven的pom.xml文件中的JVM屬性
- 17. java中的不變性屬性
- 18. 通過編程設置碼頭:命名的Java的Mac OS X JVM屬性
- 19. 的Java ZipFileSystem屬性
- 20. Java的String屬性
- 21. 在JVM啓動時從.jar中設置.properties文件的屬性
- 22. 8.5.5中的自定義JVM屬性爲空
- 23. 由JVM或硬件引起的Java中的可見性問題?
- 24. Java XML屬性
- 25. Buildr JVM屬性的JUnit設置在JVM內部而不是外部
- 26. Java JVM與Glassfish
- 27. Android Studio - Java JVM
- 28. 在java中設置屬性
- 29. 在Java中管理屬性
- 30. 創建屬性在Java中
對於30個實例,我建議您檢查[Apache Zookeeper](http://zookeeper.apache.org/)。 –
您可以使用JNDI替代..通過在羣集級別創建它將可用於30多個JVM ... – Nayeem