【发布时间】:2012-02-26 08:52:29
【问题描述】:
我有几个来自 Weblogic 10.3 服务器的 JMS 文件存储,如果可能的话,我想在不使用 Weblogic 的情况下检索其中包含的消息。这可能吗?
多年前,我能够使用 Java 序列化 (ObjectInputStream) 读取以前版本的 Weblogic 的 JMS 文件存储,但是我拥有的文件给了我一个
java.io.StreamCorruptedException: invalid stream header: C001BEAD
当我使用 ObjectInputStream 打开它们时出现异常。我想知道在反序列化消息之前是否需要跳过文件头,或者这个版本的 Weblogic 根本不使用 Java 序列化。
文件中的消息是 MapMessages。当我十六进制转储文件时,我可以看到与映射键对应的字符串,但当然这些值不能以这种方式读取。但是我可以看到映射键的事实让我希望消息在文件中被序列化。
关于如何挽救数据的任何想法?
【问题讨论】:
-
BEA 提供了一个实用程序 - weblogic.store.Admin,它能够转储 JMS 队列文件的内容。不幸的是,在我的情况下这没有用,因为它只是以十六进制格式转储消息的内容 - 它不会以可读格式公开消息的内容。如果消息是 TextMessages 可能会很有用,但在我的情况下它们是 MapMesssages。
标签: java jms weblogic weblogic-10.x