【问题标题】:Error Running Jython Script using WSADMIN使用 WSADMIN 运行 Jython 脚本时出错
【发布时间】:2018-05-30 15:49:45
【问题描述】:

我正在尝试编写一个简单的脚本来重新启动 WebSphere 应用程序服务器。

下面是我的脚本:

ManagedProcessList=AdminControl.queryNames('WebSphere:type=Server,*')

for i in range(len(ManagedProcessList)) :
        serverStatus=AdminControl.getAttribute(ManagedProcessList[i], 
'state')
        serverName=ManagedProcessList[i].split(',')[0].split('=')[1]
        nodeName=ManagedProcessList[i].split(',')[3].split('=')[1]

        if serverStatus == "STARTED":
                if nodeName in ("WC_node") and serverName in ("server1"):
                        print 
"restarting",serverName,"on",nodeName,"because it is 
currently",serverStatus
                        AdminControl.stopServer(serverName,nodeName)
                        AdminControl.startServer(serverName,nodeName)

    else:
                print "Not restarting",serverName,"on",nodeName,"because 
it is currently",serverStatus

它返回以下错误。

WASX7015E: Exception running command: 
wsadmin>execfile('/home/raja/serverstat.py')
"execfile('/home/raja/serverstat.py')"; exception information:
 com.ibm.ws.scripting.ScriptingException: WASX7025E: Error found in 
String "WebSphere:W"; cannot create ObjectName.

命令输出如下:

wsadmin>print AdminControl.queryNames('WebSphere:type=Server,*')
WebSphere:name=server1,process=server1,platform=proxy,node=WC_node,j2eeType=J2EEServer,version=7.0.0.41,type=Server,mbeanIdentifier=cells/WC_cell/nodes/WC_node/servers/server1/server.xml#Server_1183144161046,cell=WC_cell,spec=1.0,processType=UnManagedProcess
wsadmin>

【问题讨论】:

    标签: python websphere jython wsadmin


    【解决方案1】:

    如下所示更新脚本。

    变化。
    1.使用splitlines方法将“AdminControl.queryNames”的结果转换为列表,在第1行
    2. 在第 9 行的 IF 条件语句中使用 '==' 运算符,检查节点名和服务器名

    ManagedProcessList=AdminControl.queryNames('WebSphere:type=Server,*').splitlines()
    
    for i in range(len(ManagedProcessList)) :
        serverStatus=AdminControl.getAttribute(ManagedProcessList[i], 'state')
        serverName=ManagedProcessList[i].split(',')[0].split('=')[1]
        nodeName=ManagedProcessList[i].split(',')[3].split('=')[1]
    
        if serverStatus == "STARTED":
            if nodeName == "WC_node" and serverName == "server1":
                print "restarting",serverName,"on",nodeName,"because it is currently",serverStatus
                AdminControl.stopServer(serverName,nodeName)
                AdminControl.startServer(serverName,nodeName)
            else:
                print "Not restarting",serverName,"on",nodeName,"because it is currently",serverStatus
    

    【讨论】:

    • 很高兴它解决了您的问题。如果您对我的解决方案感到满意,也请“接受”答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2019-05-12
    • 2012-01-01
    • 1970-01-01
    • 2020-07-27
    • 2015-05-01
    • 2019-02-19
    相关资源
    最近更新 更多