2

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

代码:

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

问题说明:

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

参考资料:

IBM 文档

4

1 回答 1

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 :)'

使用通配符

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

activationSpec = AdminConfig.list('J2CActivationSpec', 'myActiveSpecName*')
于 2013-12-05T14:17:59.407 回答