なんか、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:
Post a Comment