com.ibm.websphere.runtime.servername.getDisplayName() 是 None
com.ibm.websphere.runtime.servername.getDisplayName() is None
如以下链接问题中所建议....
Getting instance name of a WebSphere app Server
我在现有 python 文件中调用 ServerName.getDisplayName(),但结果是 None。
基本上我希望在 websphere 控制台中将上面的显示名称设置为 "Generic JVM arguments"。
pyton 脚本在我们的 ant 目标中运行良好,我可以在 websphere 控制台中看到其中一个 jvm args 设置为 None。
为什么我得到 None 有什么想法吗? Websphere 控制台将服务器名称显示为 "server1",所以我希望 ServerName.getDisplayName() 应该 return 那。
===================================
对召集人的回应:
file1.py 从 ant 目标调用。结果见附件
file1.py
开始------------------------------------
import file2
file2.configSystemProperties()
file2.saveConfiguration()
结束-------------------------------------
file2.py
开始------------------------------------
from com.ibm.websphere.runtime import *
import websphere
.....
def configSystemProperties():
websphere.setGenericJvmArguments("-Dtangosol.coherence.override=coherence.xml -DlogsDirName=" + str(ServerName.getDisplayName()));
.....
def saveConfiguration() :
websphere.save()
结束-------------------------------------
websphere.py 文件
开始------------------------------------
....
AdminConfig = AdminConfigClient.getInstance();
....
def setGenericJvmArguments(genericJvmArguments):
print "JVM generic arguments " + str(genericJvmArguments);
AdminConfig.modify(jvm, [
["genericJvmArguments", genericJvmArguments]
])
def save() :
logMajor("Saving...")
AdminConfig.save()
logMajor("Save complete.")
....
结束-------------------------------------
结果:
screenshot of websphere console showing None
在我看来,如果您的代码不在应用程序服务器进程中 运行,则您不能调用静态方法 Server.getDisplayName()。这不是真正的 wsadmin/脚本库 API
相反,您需要使用管理员 API 查找服务器。
如以下链接问题中所建议.... Getting instance name of a WebSphere app Server
我在现有 python 文件中调用 ServerName.getDisplayName(),但结果是 None。 基本上我希望在 websphere 控制台中将上面的显示名称设置为 "Generic JVM arguments"。 pyton 脚本在我们的 ant 目标中运行良好,我可以在 websphere 控制台中看到其中一个 jvm args 设置为 None。
为什么我得到 None 有什么想法吗? Websphere 控制台将服务器名称显示为 "server1",所以我希望 ServerName.getDisplayName() 应该 return 那。
=================================== 对召集人的回应:
file1.py 从 ant 目标调用。结果见附件
file1.py 开始------------------------------------
import file2
file2.configSystemProperties()
file2.saveConfiguration()
结束-------------------------------------
file2.py 开始------------------------------------
from com.ibm.websphere.runtime import *
import websphere
.....
def configSystemProperties():
websphere.setGenericJvmArguments("-Dtangosol.coherence.override=coherence.xml -DlogsDirName=" + str(ServerName.getDisplayName()));
.....
def saveConfiguration() :
websphere.save()
结束-------------------------------------
websphere.py 文件 开始------------------------------------
....
AdminConfig = AdminConfigClient.getInstance();
....
def setGenericJvmArguments(genericJvmArguments):
print "JVM generic arguments " + str(genericJvmArguments);
AdminConfig.modify(jvm, [
["genericJvmArguments", genericJvmArguments]
])
def save() :
logMajor("Saving...")
AdminConfig.save()
logMajor("Save complete.")
....
结束-------------------------------------
结果: screenshot of websphere console showing None
在我看来,如果您的代码不在应用程序服务器进程中 运行,则您不能调用静态方法 Server.getDisplayName()。这不是真正的 wsadmin/脚本库 API
相反,您需要使用管理员 API 查找服务器。