Saturday, 25 January 2020

MsgPack

なんか、Christie で「オブジェクトが送れない」ってのがあるてっのが昨日判明して。いや、

  なんで、お前たち、int 単体で送るとかしかやってないんだよ

って思ってたんだけど、簡単な例題書いたら動かない。Java 11 だからなぁ。

  msgpack-0.6.12.jar

だからなあ。最新は 0.8.20 らしく。ところが、かなり変更があるらしく動かない。

0.6 だと@Message で任意のオブジェクトが送れたりするんですが、0.8 では削除されたっぽいな。

まぁ、Serializer を自分で書く方がいいか、と 0.8 で書き直す気になったんですが...

そもそも、簡単な例題以外にも動いてない。で、debug 。どうも、Method Chain が流行った頃のコードらしく、

    new CommandBuilder().init(CommandType.REPLY).connection(connection).build().execute();

みたいなコードが。これで初期化が足りないらしい。

    new CommandBuilder().init(CommandType.REPLY).connection(connection).key(key).dg(dg).build().execute();

とかで初期化を増やす。contructor の引数増やした方が忘れなくて良いんじゃないの?

でも、javassist が compile error とか言ってくるのが動かない理由らしい。javassist は msgpack-0.6 が使うらしく、

その時の古い版のまま。javassist の版を上げたら動くとか、そういうことはなく。くそ〜

さらにerror message でググったら、

   public static class

にしろとか。え〜? いや、そうではなくて、@Message な class の field を public にしたら動きました。そこか。

学生のやってることは油断ならないんだよな。エラーメッセージ無視するとか普通だし。

まぁ、でも、ある段階で 0.8 に変えるんだろうな。いや、そのまま捨てるかも。

No comments: