0

TagSupport を拡張するクラス ファイルがあります。ここでプロパティ ファイルを読み取りたいのですが、機能していません。getResourceAsStream が null を返していると思います。

私は、bit システムで展開された war ファイルを使用しています。

コード:

public class MyTag extends TagSupport {

  private int getUsers() {

  ServletContext servletContext = pageContext.getServletContext();

  InputStream in = pageContext.getServletContext().getResourceAsStream("/WEB-INF/app.properties");

  Properties properties = new Properties();
  properties.load(in);
  int users= Integer.parseInt(properties.getProperty("users"));

  return users;    }

}

このコードは私の PC では機能しますが、テスト システムでは機能しません。次の例外が発生します。

java.lang.NullPointerException エラー [STDERR] at java.util.Properties$LineReader.readLine(Properties.java:418) エラー [STDERR] at java.util.Properties.load0(Properties.java:337) エラー [STDERR] at java.util.Properties.load0(Properties.java:337) java.util.Properties.load(Properties.java:325)

4

1 に答える 1

1

あなたはなぜにapp.properties住んでいます/WEB-INFか?だったら/WEB-INF/classes、単に を呼び出すことができますgetResourceAsStream("/app.properties")。これは、引数 togetResourceAsStream(...)がクラスパスに対して相対的に解決されるためです。

于 2013-07-24T12:13:54.560 に答える