如何在wlst

时间:2017-08-28 12:20:35

标签: python weblogic wlst

如何迭代javax.management.openmbean.CompositeDataSupport数组?

myBean = ObjectName('com.oracle.sdp.messaging:Location=my_soa_server,name=EmailDriverConfig,type=SDPMessagingDriverConfig,Application=usermessagingdriver-email')

driverParams = mbs.getAttribute(myBean,'DriverParameterProperties')
for param in driverParams:
  ####How to do iterate and do an if on a name#####
    print param.getName()

如果我这样做,我会......

Traceback (innermost last):
  File "<console>", line 1, in ?
AttributeError: getName

我已经验证了当你执行driverParams [0]时我得到的东西是

javax.management.openmbean.CompositeDataSupport(compositeType=javax.management.openmbean.CompositeType(name=Property,items=((itemName=allowedValues,itemType=javax.management.openmbean.ArrayType(name=[Ljavax.management.openmbean.CompositeData;,dimension=1,elementType=javax.management.openmbean.CompositeType(name=AllowedValue,items=((itemName=label,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=value,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)))),primitiveArray=false)),(itemName=description,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=encodedCredential,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=mandatory,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=name,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=type,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=value,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)))),contents={allowedValues=[], description=Supported Delivery Types, encodedCredential=false, mandatory=yes, name=SupportedDeliveryTypes, type=java.lang.String, value=EMAIL})

查看该属性,我想验证SupportedDeliveryTypes值

name=SupportedDeliveryTypes
value=EMAIL
description=Supported Delivery Types

1 个答案:

答案 0 :(得分:1)

CompositeDataSupport不是数组。

要查看其内容,您可以尝试使用toString()(在示例driverParams[0].toString()中)或使用values()get(String key) / getAll(String[] keys)访问值。

例如,尝试使用:

myBean = ObjectName('com.oracle.sdp.messaging:Location=my_soa_server,name=EmailDriverConfig,type=SDPMessagingDriverConfig,Application=usermessagingdriver-email')

driverParams = mbs.getAttribute(myBean,'DriverParameterProperties')
for param in driverParams:
    print param.toString()