Я использую оболочку wasadmin и jython lang для настройки свойств в WAS9. На самом деле я создал автоматизированный процесс с несколькими сценариями оболочки и jython, которые помогают настроить мое приложение. При использовании AdminConfig.create() выдается исключение для нескольких свойств:
[17/1/19 17:06:20:032 CET] 00000001 AbstractShell E WASX7120E: Диагностическая информация из исключения с текстом "com.ibm.ws.scripting.ScriptingException: WASX7129E: Невозможно создать объекты типа "Свойство" в родительских элементах введите "DescriptiveProperty" следующим образом:
com.ibm.ws.scripting.ScriptingException: WASX7129E: Невозможно создать объекты типа "Property" в родительских элементах типа "DescriptiveProperty"
Мой код сначала проверяет, существует ли свойство уже или нет, если оно существует, я удаляю его и создаю. Эту идею я получил после просмотра файла jython IBM для добавления свойств JVM. Это текущий поток моего кода. Раньше я проверял, существует ли свойство уже или нет, и если оно существует, я использовал его для изменения, иначе создал его. Я получал другую ошибку из блока модификации, поэтому сейчас я использую логику удаления, а затем создаю.
currentProps = getListArray(AdminConfig.list(property, parent))
for prop in currentProps:
if property == AdminConfig.showAttribute(prop, "name"):
logging.info('Removing existing property from Server')
AdminConfig.remove(prop)
# create new property
logging.info('Creating new property %s', key)
if type:
AdminConfig.create(
property,
parent,
[
[ 'type', type ],
[ 'name', key ],
[ 'value', value ],
]
)
else:
AdminConfig.create(
property,
parent,
[
[ 'name', key ],
[ 'value', value ],
]
)
Я хочу знать, можно ли судить, какое свойство является описательным, поэтому я могу использовать блок if else для отклонения.