dropwizard Application<Configuration>の型指定を忘れる


DropwizardのApplication Mainクラスの型指定を忘れたら、 以下のエラーが出力されました。 小2時間くらい消費してしまいましたので、悲しい備忘録です。

Exception in thread "main" java.lang.IllegalStateException: 
Cannot figure out type parameterization for xxx.xxx.xxx.xxx.BatchApplication
    at io.dropwizard.util.Generics.getTypeParameter(Generics.java:62)
    at io.dropwizard.Application.getConfigurationClass(Application.java:30)
    at io.dropwizard.cli.ServerCommand.<init>(ServerCommand.java:25)
    at io.dropwizard.Application.run(Application.java:69)
    at xxx.xxx.xxx.xxx.BatchApplication.main(BatchApplication.java:38)

修正前の記述

public class BatchApplication extends Application {

    public static void main(String[] args) throws Exception {
        new BatchApplication().run(args);
    }
}

修正後の記述

public class BatchApplication extends Application<Configuration> {

    public static void main(String[] args) throws Exception {
        new BatchApplication().run(args);
    }
}

Generics.getTypeParameterで型指定したClassを取得しますが、 指定していないので、取得できずにエラーとなっていました。

コメント