0

jetty の JAX-RS アプリケーションで構成ファイルをロードしているときに、クレイジーなエラーが発生します。

public class Configuration {
    public static final Properties config = new Properties();

    static {
        config.clear();

        try (InputStream inputStream = Configuration.class.getClassLoader().getResourceAsStream("config.properties")) {
            config.load(inputStream);
        } catch (Exception ex) {
            Logger.error(ex);
        }
    }
}

config.propertiesデフォルトのパッケージを入れると、問題なく動作します。しかし、それをロードすると、オブジェクトjava -cp config.propertiesには何もありません。configこれらの方法を調べましたが、うまくいきません。

ClassLoader.getSystemClassLoader().getResourceAsStream("config.properties");
ClassLoader.getSystemClassLoader().getResourceAsStream("/config.properties");
Configuration.class.getClassLoader().getResourceAsStream("config.properties");
Configuration.class.getClassLoader().getResourceAsStream("/config.properties");

奇妙なことに、プロジェクトで Tinylog を Logger として使用し、TinyLog がtinylog.properties同じ方法でその構成ファイルをロードします。

/* I found this from Tinylog source code */
Configurator.class.getClassLoader().getResourceAsStream("tinylog.properties");

を介してtinylog構成をフィードしていますjava -cp tinylog.properties。私のコードに何か問題がありますか?

4

1 に答える 1