如何使用java向mqrfh2-header中的子文件夹移动一个文件夹?

时间:2016-07-07 07:43:03

标签: java ibm-mq rfh2

我希望SubFolders移动一个文件夹并删除" FolderToDelete",因为在移动所需的子文件夹后它没用。
RFH2-Header的结构如下:

<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-classes没有提供方法,我如何使用子文件夹?

1 个答案:

答案 0 :(得分:0)

这是解决方案,但我不会给出任何代码:
首先,从一个数组中的属性中读取所有名称。将数组过滤为要保存的名称。使用此列表读取所有属性。保存列表中的属性,但从键中删除“FolderToDelete”。

完成!