WASX7129E: Не удается создать объекты типа Property в родительских элементах типа DescriptiveProperty.

Я использую оболочку 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 для отклонения.


person Manpreet    schedule 22.01.2019    source источник


Ответы (1)


Возникшая ошибка верна, ее необходимо обработать, проверив тип родительского свойства. Если это не свойство, то я использую AdminConfig.modify(), а если это свойство типа, то AdminConfig.remove() и AdminConfig.create().

if('#DescriptiveProperty_' in parent) or ('#StreamRedirect_' in parent):
  AdminConfig.modify(parent,[[ key, value ]]

Это решает проблему и больше не содержит таких ошибок, как: com.ibm.ws.scripting.ScriptingException: WASX7129E: Невозможно создать объекты типа "Свойство" в родителях типа "DescriptiveProperty"

person Manpreet    schedule 07.03.2019