Websphere JYTHON Scripting - 获取活动规范ID

时间:2013-11-28 14:36:42

标签: websphere wsadmin

问题: 尝试使用下面的JYTHON命令,我无法检索在Websphere中的节点 - 服务器级别定义的活动规范的ID。我相信它是一个语法问题,但我不确定是什么。

代码:

AdminConfig.getid('/Cell:mycell/Node:mynode/Server:myserver/J2CActivationSpec:myActiveSpecName/')

问题说明:

  • 我没有收到无效的对象错误,所以我相信我的语法正确,但即使它存在,也无法找到资源。
  • 我使用AdminConfig.getid()作为检查资源是否已存在以便进行修改或创建的方法。
  • 如果我使用以下代码:AdminConfig.getid('/ J2CActivationSpec:myActiveSpecName /')它会找到它,但如果我使用上面列出的更具体的路径则不会。

参考资料:

IBM Documentation

1 个答案:

答案 0 :(得分:1)

遏制路径总是有点棘手。在我的(有限)经验中,即使您可以通过AdminConfig.parents追踪路径,您也可能无法始终使用getid。

您是否仅限于使用getid?如果没有,这里有一些替代方案可以在/ Cell / Node / Server级别获得ActivationSpec:

使用AdminConfig.list

查询

此方法将列出指定范围内的激活规范(在我们的示例中为服务器),并获取其名称属性等于'myActiveSpecName'的激活规范。

server = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:myserver')
activationSpec = ''

for as in AdminConfig.list('J2CActivationSpec', server).splitlines():
    if AdminConfig.showAttribute(as, 'name') == 'myActiveSpecName'
        activationSpec = as
        print 'found it :)'

使用通配符

此Approah也使用AdminConfig.list,但使用模式缩小列表范围。如果您知道激活规范的配置以myActiveSpecName开头,那么您可以执行以下操作:

activationSpec = AdminConfig.list('J2CActivationSpec', 'myActiveSpecName*')