WASX7129E: Невозможно создать объекты типа «Свойство» в родительских элементах типа «DescriptiveProperty» - PullRequest
0 голосов
/ 22 января 2019

Я использую wasdmin shell и jython lang для настройки свойств в WAS9. На самом деле я создал автоматизированный процесс с несколькими сценариями оболочки и jython, который помогает в настройке моего приложения. При использовании AdminConfig.create () он выдает ниже исключение для нескольких свойств:

[17.01.19 17: 06: 20: 032 CET] 00000001 AbstractShell E WASX7120E: Диагностическая информация из исключения с текстом «com.ibm.ws.scripting.ScriptingException: WASX7129E: Невозможно создать объекты типа« Свойство » в родителях типа "DescriptiveProperty" "следует:

com.ibm.ws.scripting.ScriptingException: WASX7129E: Невозможно создать объекты типа «Свойство» в родительских элементах типа «DescriptiveProperty»

Мой код сначала проверяет, существует ли свойство уже или нет, если оно существует, я удаляю его и создаю его, эту идею я получил после просмотра файла Jython IBM для добавления свойств JVM. Это текущий поток моего кода. Ранее я проверял, существует ли свойство или нет, если оно существует, я использовал его для изменения, иначе создаю его. Я получал другую ошибку из блока модификации, поэтому я использую delete, а затем создаю логику.

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 для переадресации.

1 Ответ

0 голосов
/ 07 марта 2019

Произошла ошибка, это правильно, она должна быть обработана путем проверки типа свойства родителя. Если это не свойство, то я использую 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»

...