0

私はrestlet.ComponentをTomcatにデプロイしています。これでは、アプリの構成ファイルを読み取ります。

this.properties.load(new FileInputStream("config/conf.properties));

私は持っていますjava.io.FileNotFoundException

私のウェブアプリの構造は次のとおりです。

/mi-webapp
  /config
     conf.properties
  /WEB-INF
    /classes
    /lib
    web.xml

どうすればレストレットの実際のパスを取得できますか?私は読んだServletContext.getRealPath()のですが、それは悪い習慣です、どのようにあなたはお勧めしますか?

4

1 に答える 1

2

configディレクトリを内部に移動し、WEB-INF/classes代わりに次のコードを使用します。

    URL url = this.class.getClassLoader().getResource("config/conf.properties");
    try {
        this.properties.load(url.openStream());
    } catch (IOException e) {
        System.out.println("Couldn't open/load properties file");
    }

このようにして、アプリケーションのスコープ内にあるクラスパスからファイルをロードし、セキュリティホールが発生することはありません。

于 2012-08-03T12:08:14.587 に答える