Как переместить подпапки вверх на одну папку в mqrfh2-заголовке с помощью Java?
Я хочу, чтобы подпапки переместились на одну папку вверх и удалили "FolderToDelete", поскольку это бесполезно после перемещения необходимых подпапок вверх.
Заголовок RFH2 имеет следующую структуру:
<usr>
<FolderToDelete>
<SubFolder 1 To Move Up>
</SubFolder 1 To Move Up>
<SubFolder 2 To Move Up>
</SubFolder 2 To Move Up>
<SubFolder I don't need 1>
</SubFolder I don't need 1>
<SubFolder 3 To Move Up>
</SubFolder 3 To Move Up>
<SubFolder I don't need 2>
</SubFolder I don't need 2>
</FolderToDelete>
</usr>
Он попробовал это так:
newMsg.setStringProperty("usr.SubFolder 1 To Move Up", message.getStringProperty("usr.FolderToDelete.SubFolder 1 To Move Up"));
newMsg.setStringProperty("usr.SubFolder 2 To Move Up", message.getStringProperty("usr.FolderToDelete.SubFolder 2 To Move Up"));
newMsg.setStringProperty("usr.SubFolder 3 To Move Up", message.getStringProperty("usr.FolderToDelete.SubFolder 3 To Move Up"));
newMsg.deleteProperty("usr.FolderToDelete");
Это не сработало, и я получил сообщение об ошибке для первой строки. Это сообщение об ошибке:
MQJE001: Completion code '2', Cause '2471'.
Сайт http://blog.robiii.nl/2012/01/websphere-mq-reason-codes.html сообщает, что это следующая причина:
2471 09A7 RC2471 MQRC_PROPERTY_NOT_AVAILABLE
Но я знаю, что собственность доступна, я уверен, что нет ошибки с названием.
Это потому, что я работаю с подпапками, а не со свойствами? Если да, то почему есть разница? Подпапки и свойства - это просто html-теги со строковым содержимым. Там нет разницы? Как я могу работать с подпапками, если в mq-классах нет методов?
1 ответ
Вот решение, но я не буду давать код:
Сначала прочитайте все имена из атрибутов в одном массиве. Фильтруйте массив по именам, которые вы хотите сохранить. Прочитайте все свойства, используя этот список. Сохраните свойства из списка, но вырежьте "FolderToDelete" из ключа.
Готово!