如何使用 Jython 将自定义属性添加到数据源?

问题描述 投票:0回答:2

我们正在使用 Jython 在 WAS 中配置数据源。数据源创建正常,具有一些默认的自定义属性。现在我需要添加另一个属性,而不删除其他属性。有什么想法吗?

jython ibm-was
2个回答
1
投票

您可以按照下面知识中心链接上的说明使用 Jython 创建新的数据源自定义属性:

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-nd-dist&topic=txml_configcustom

该链接提供以下步骤:

  1. 识别家长ID:

    newds = AdminConfig.getid('/Cell:mycell/Node:mynode/JDBCProvider:JDBC1/DataSource:DS1/')
    print newds
    

    输出示例:

    DS1(单元格/mycell/节点/mynode|resources.xml$DataSource_1)

  2. 获取J2EE资源属性集:

    propSet = AdminConfig.showAttribute(newds, 'propertySet')
    print propSet
    

    输出示例:

    (单元格/mycell/节点/mynode|resources.xml#J2EEResourcePropertySet_8)

  3. 获取所需属性:

    print AdminConfig.required('J2EEResourceProperty')
    

    输出示例:

    属性类型 名称字符串

  4. 设置属性:

    name = ['name', 'RP4']
    rpAttrs = [name]
    
  5. 创建 J2EE 资源属性:

    print AdminConfig.create('J2EEResourceProperty', propSet, rpAttrs)
    

    输出示例:

    RP4(单元格/mycell/节点/mynode|resources.xml#J2EEResourceProperty_8)

  6. 保存配置更改。

  7. 仅在网络部署环境中,同步节点。


0
投票

更常见的是,您需要修改现有属性,因为许多默认值可能已经创建。因此,我建议采用以下方法:

def modifyJ2eeProperty(ds,name,value):
    propset = AdminConfig.list('J2EEResourcePropertySet', ds)
    for i in AdminConfig.list('J2EEResourceProperty', propset).splitlines():
        if (name == AdminConfig.showAttribute(i, 'name')):
            print AdminConfig.showAttribute(ds, 'name') + ': ' + name + ' = ' + str(AdminConfig.showAttribute(i, 'value'))
            AdminConfig.modify(i, [['value', value]])
            print 'modified to: ' + name + ' = ' + str(value)

def setJ2eeProperty(ds,name,value):
    propset = AdminConfig.showAttribute(ds, 'propertySet')
    if name not in AdminConfig.list('J2EEResourceProperty', propset):
        print "creating new property"
        AdminConfig.create('J2EEResourceProperty', propset, [['name', name], ['type', "java.lang.Integer"], ['description', ""], ['value', value], ['required', "false"]])
        print AdminConfig.list('J2EEResourcePropertySet', ds)
    else:
        modifyJ2eeProperty(ds,name,value)

注意列表: [['名称', 名称], ['类型', "java.lang.Integer"], ['描述', ""], ['值', 值], ['必需', "假"]]

类型比 Integer 更多。这只是我的例子,你可以根据需要进行调整。

所需参数只是“名称”,如您在文档或

print AdminConfig.required('J2EEResourceProperty')
输出中看到的那样。

© www.soinside.com 2019 - 2024. All rights reserved.