バージョンアップに潜む罠
本日、社内から寄せられた質問。
「S2Container、S2JSF、S2Daoを最新版にアップしたら、NullPointerExceptionが出て動かなくなったんですが」
スタックトレースとソースコードから、S2Daoの付属dicon定義(dao.dicon)をアップデートしていなかったのが原因と判明。
DIの仕組みがわかっていてソースコードをみれば5分で解決できる問題なのだけど、初めての場合ははまるかも(というか、私も昔はまりました)。今回も「え?Jarファイルを置き換えるだけじゃだめなんだ。」という反応でした。たしかに、各プロダクトに付属するdiconはどこまで置き換えなきゃいけないか、明示的に書いた方がよいかもしれませんね。
S2Containerに付属する j2ee.dicon とかは、データベースの接続定義も含むので、ついつい置き換えを忘れがちです。