Websphere 使用wsadmin Jython修改名称空间绑定

Websphere 使用wsadmin Jython修改名称空间绑定,websphere,jython,wsadmin,Websphere,Jython,Wsadmin,任务是使用wsadmin(Jython)修改名称空间绑定。 我有几个用于scope server的字符串绑定。我计划列出现有的绑定;添加/修改目标绑定 我可以列出: for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() : name = AdminConfig.showAttribute( ns, 'name' ) stringToBind = AdminConfig.showAttribute( ns, 's

任务是使用wsadmin(Jython)修改名称空间绑定。 我有几个用于scope server的字符串绑定。我计划列出现有的绑定;添加/修改目标绑定

我可以列出:

for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() :
    name = AdminConfig.showAttribute( ns, 'name' )
    stringToBind = AdminConfig.showAttribute( ns, 'stringToBind' )
    print '%s="%s"' % ( name, stringToBind )
我可以创建一个新的:

server1 = AdminConfig.list('Server')
print AdminConfig.create('StringNameSpaceBinding', server1, [['name', 'binding2'], ['nameInNameSpace', 'myBindings/myString'], ['stringToBind', "This is the String value"]])
AdminConfig.save()
  • 如果存在现有绑定,如何修改现有绑定
  • 如何删除绑定
  • 我想这可以通过AdminConfig.modify和AdminConfig.remove完成。 链接:

  • IBM提供的文档:
  • 使用jacl修改绑定:

  • 我自己设法做到了。我在Jython没有经验,但它很管用。脚本需要4个参数:作用域的目标服务器、绑定名称、绑定值和名称空间中的名称:

    server = sys.argv[0]
    bindingName = sys.argv[1]
    bindingValue = sys.argv[2]
    bindingNameSpace = sys.argv[3]
    
    # Obtain the "simple" server name
    def getServerName(s):
        return AdminConfig.showAttribute(s, 'name')
    
    # Add binding
    def addBindingsToServer(s):
        for ns in AdminConfig.list( 'NameSpaceBinding' ).splitlines() :
            if bindingName == AdminConfig.showAttribute( ns, 'name' ):
                print "Removing existing binding from Server %s" % getServerName(s)
                AdminConfig.remove(ns)
    
        # Create binding
        print "Adding binding to Server %s" % getServerName(s)
        print AdminConfig.create('StringNameSpaceBinding', s, [['name', bindingName], ['nameInNameSpace', bindingNameSpace], ['stringToBind', bindingValue]])
    
    # Set server and call function
    server = AdminConfig.getid('/Server:'+server+'/')
    addBindingsToServer(server)
    
    # Save changes
    if (AdminConfig.hasChanges()):
        AdminConfig.save()