我们正在使用 Jython 在 WAS 中配置数据源。数据源创建正常,具有一些默认的自定义属性。现在我需要添加另一个属性,而不删除其他属性。有什么想法吗?
您可以按照下面知识中心链接上的说明使用 Jython 创建新的数据源自定义属性:
该链接提供以下步骤:
识别家长ID:
newds = AdminConfig.getid('/Cell:mycell/Node:mynode/JDBCProvider:JDBC1/DataSource:DS1/')
print newds
输出示例:
DS1(单元格/mycell/节点/mynode|resources.xml$DataSource_1)
获取J2EE资源属性集:
propSet = AdminConfig.showAttribute(newds, 'propertySet')
print propSet
输出示例:
(单元格/mycell/节点/mynode|resources.xml#J2EEResourcePropertySet_8)
获取所需属性:
print AdminConfig.required('J2EEResourceProperty')
输出示例:
属性类型 名称字符串
设置属性:
name = ['name', 'RP4']
rpAttrs = [name]
创建 J2EE 资源属性:
print AdminConfig.create('J2EEResourceProperty', propSet, rpAttrs)
输出示例:
RP4(单元格/mycell/节点/mynode|resources.xml#J2EEResourceProperty_8)
保存配置更改。
仅在网络部署环境中,同步节点。
更常见的是,您需要修改现有属性,因为许多默认值可能已经创建。因此,我建议采用以下方法:
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')
输出中看到的那样。