1

IBM MQ Visual Edit から JMS オブジェクト メッセージをデシリアライズしようとした人はいますか? MQ を介して JMS メッセージとして送信されたオブジェクトを解読する必要があります。メッセージをファイルに保存し、次のように ObjectInputStream を使用して読み取ろうとしました。

ObjectInputStream objectStream = new ObjectInputStream(new DataInputStream(new FileInputStream("PATH TO THE FILE")));
SomeObject result = ((SomeObject)objectStream.readObject());

しかし、私はエラーが発生します:

java.io.StreamCorruptedException: invalid stream header: 52464820
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:794)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:291)
    at com.railinc.emis.transaction.model.DeserializerClass.main(DeserializerClass.java:14)

これについて少し調査したところ、シリアル化に使用されたのと同じクラスを逆シリアル化に使用する必要があることがわかりました。

誰かが以前にこれを試したことがある場合は、その経験を教えてください。

4

1 に答える 1

0

IBM MQ Visual Edit についてはわかりませんが、ObjectMessage を保存する機能があれば、おそらくメッセージに含まれるオブジェクトだけでなく、ヘッダー (JMS プロパティを含む) も保存されます。ObjectInputStream を使用するだけでファイルからオブジェクトを読み取ることができるとは思いません。そのメッセージをテスト キューに入れて、そこから読み取ってみませんか?

于 2012-09-22T15:45:16.870 に答える