websphere Jython脚本:查询激活规范的自定义属性

时间:2014-10-29 18:17:37

标签: websphere jython wsadmin

如何迭代激活规范的自定义属性?实际上我想获得" WAS_EndpointInitialState"的价值。

asList = AdminConfig.list('J2CActivationSpec').splitlines()
for as in asList:
    asName = AdminConfig.showAttribute(as, 'name')
    # beyond this point it does not work
    propSet = AdminConfig.showAttribute(as, 'resourceProperties')
    propList = AdminConfig.list('J2EEResourceProperty', propSet).splitlines()
    for prop in propList:
        print 'name = ' + AdminConfig.showAttribute(prop, 'name')
        print 'value = ' + AdminConfig.showAttribute(prop, 'value')

1 个答案:

答案 0 :(得分:2)

resourceProperties属性是一个以空格分隔的字符串,由方括号括起来。以下脚本应该适合您:

asList = AdminConfig.list('J2CActivationSpec').splitlines()
for as in asList:
    asName = AdminConfig.showAttribute(as, 'name')
    propList = AdminConfig.showAttribute(as, 'resourceProperties')[1:-1].split()
    for prop in propList :
        print 'name = ' + AdminConfig.showAttribute(prop, 'name')
        print 'value = ' + AdminConfig.showAttribute(prop, 'value')

如果属性名称的对象ID中有任何空格,则可能会破坏。

您可以使用正则表达式处理所有边缘情况,或者尝试使用WDR库(http://wdr.github.io/WDR/ https://github.com/WDR/WDR)。此外,它使您的脚本更具可读性和可维护性。

使用WDR,脚本将如下所示:

asList = listConfigObjects('J2CActivationSpec')
for as in asList:
    asName = as.name
    propList = as.resourceProperties
    for prop in propList :
        print 'name = ' + prop.name
        print 'value = ' + prop.value