jsonengineのjava 8対応をした

2019年1月16日から、Java 7対応はshutdownした、との事。 その余波を受けて、統計グラフ!のバックエンドが動かなくなって毎日エラーを通知するようになってしまっていた。

統計グラフ!のバックエンドはjsonengineという物をforkして使っていた。 ほぼ元のままだが変なログイン機構とかを外したりサーブレット足したりしている。

で、これをJava 8に上げようとしたが、いろいろ苦戦した。

やった事まとめ

試行錯誤はいろいろあったが、結論だけまとめておく。

jsonengineに同梱されているslim3はrepackageされているBase64ライブラリが使われていて、これが動かなくなっている。 だが、slim3は最終更新は2012年でありながら、その最後の版ではその辺が治っているので、最新版のslim3を持ってきてビルドしなおせば動いた。

ただしslim3は自動生成されるモデルクラスのメソッドが結構変わっているので、コード生成はやり直す必要がある。 だからantとjdkだけ入れてビルドではダメで、EclipseをインストールしてGoogle Cloudのプラグインをインストールしたり、annotation processorにslim-genを指定して、さらにwar/WEB-INF/libの下を加えたりdeployするフォルダをここに変更したりしてからデプロイしなおす必要がった。

レポジトリはhttps://github.com/karino2/jsonengine/tree/tonbinqscriptbackendSync/なので、同じような事で困った人は多少は参考になるかも。