Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

TomcatとGlassFishで動作が違った

ServletContext#getRealPath(String)Tomcat 6,8ではnullではなかったけれど、GlassFish 4ではnullを返しました。

This method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the content is being made available from a .war archive).

ServletContext (Servlet API Documentation)

でも仕様としてはこの説明なので、全然nullを返していいんですけどね。 ライブラリの内部でこのメソッドを呼んでいてNPEが出たのですが、ライブラリのバージョンを上げて解決となりました。