R42日記スマートフォン用の表示で見るR42日記この日記は私的なものであり所属会社の見解とは無関係です。takahashikznITmediaに寄稿しました。Webサービス好評頂いています→[クラウド帳票エンジンDocurain]2018-10-04Java11でMyBatisが動かない→Unsafeの仕様が変わったためお久しぶりです。最近忙しすぎてサボってました。書くネタはそれなりにあるのですが...さて、Java11がリリースされましたね。壁にぶち当たりました。loadingが動きません。結論から言うと、org.apache.ibatis.javassist.util.proxy.DefineClassHelperがsun.mics.Unsafeを使っているところを、jdk.internal.misc.Unsafeを使うように切り替える必要があります。これ、当然ながらソースコードにハードコーディングされているわけでして、なんとかしようと思うと毎度おなじみJavassistで無理やり書き換えるソースをコピーして書き換えるのどちらかになるかと。(1)はあまりお勧めできません。するとフィールドをJavassistで強引に入れ替えるだけでは済まず、メソッド定義も全面的に書き換える必要があります。要するにコードの書き直しに等しい。よって、とりあえず今回はめんどくさいので(2)の作戦を採用します。適当なソースフォルダにDefineClassHelperのソースをコピーして、以下の箇所を書き換えます。