Weblogic WLST将状态(';ms1';)的输出捕获到变量

Weblogic WLST将状态(';ms1';)的输出捕获到变量,weblogic,weblogic-10.x,wlst,Weblogic,Weblogic 10.x,Wlst,我需要将下面的输出捕获到一个变量。 我知道我们可以访问serverRuntime或domainRuntime()树并获取状态。但需要让下面的工作 wls:/owb/serverConfig> state('Server1') Current state of 'Server1' : RUNNING 我尝试了两种方法: wls:/owb/serverConfig> print state('Server1') Current state of 'Server1' : RUNNING

我需要将下面的输出捕获到一个变量。 我知道我们可以访问serverRuntime或domainRuntime()树并获取状态。但需要让下面的工作

wls:/owb/serverConfig> state('Server1')
Current state of 'Server1' : RUNNING
我尝试了两种方法:

wls:/owb/serverConfig> print state('Server1')
Current state of 'Server1' : RUNNING
None

wls:/owb/serverConfig> x=state('Server1')
Current state of 'Server1' : RUNNING

wls:/owb/serverConfig> print x
None

您必须使用服务器运行时mbean的
getState()
方法。 您可以通过导航到wlst运行时树或使用查找方法来获取服务器运行时mbean

样本:

domainRuntime()
slrBean = cmo.lookupServerLifeCycleRuntime('Server1')
status = slrBean.getState()
print 'Status of Managed Server is '+status

另见WLST官方文件。

2011年,王殿元向我提出了同样的问题。 以下是解决问题的步骤。 1.使用redirect、stopRedirect命令捕获state命令的输出 2.在搜索函数中使用Python正则表达式提取所需的服务器输出

代码片段在这里

            fileName='/tmp/myserver_state.txt'
            redirect(fileName)
            state(server_nm,'Server')
            stopRedirect()
            f = open(fileName)
            try:
                    for line in f.readlines():
                            if re.search('Current state',line):
                                    status[server_nm]=line
            except:
                    continue
现在,您可以在此块之后应用所需的逻辑

干杯!!
HTH

这是我正在使用的,而且工作起来很有魅力

    cd("/ServerRuntimes/ms1")
    state=cmo.getState()
    print state

我尝试了它,得到了以下错误:wls:/owb/domainRuntime>slrBean=cmo.lookupServerLifecycleRuntime('owb001')回溯(最里面的最后一个):文件“”,第1行,在?AttributeError:LookupServerLifecycleRuntimes这是正确的答案,但是lookupServerLifeCycleRuntime中应该有CAPS C for CycleFixed代码和CAPS C,非常感谢@user3460652是的,我认为这是唯一的方法,没有写入文件的其他方法吗?