Wicketでproperties以外のファイルを取得する

ServletContextを使ってファイルの取得をするとUnitTestのときにパスを変えないといけないので別の手法が望ましいです。

Wicketでは

{project_name}/src/main/resources以下にpropertiesを配置して

ResourceBundle.getBundle("{filename}")

でプロパティを取得できるのでこの階層に対してパスが通っているようです。

そのため使用されているクラスローダに相対パスを指定する形でファイルを取得できるようです。

resourcesの下にsqlというフォルダを作り、その下にsample.sqlを配置した場合、以下のコードで取得可能です。

InputStream in =
        getClass().getClassLoader().getSystemResourceAsStream("sql/sample.sql");

※WindowsでもFileSeparatorは「/」で良いようです。