奇妙な問題に悩まされています。私は自分のクラス(@Serviceとして定義されている)にServletContextを追加していて、常にnullを返します。 @Autowiredとそれなしの両方を試してみました。Spring ServletContextがnullを返します。
また、アプリの起動時にエラーは発生しませんでした。 i 'はにServletContext.getRealPath( "/ WEB-INF /")' を呼び出すだけNULL値
これは私がそれを使用しようとしているクラスです。
@Service
public class MyFactory implements ServletContextAware {
@Autowired
ServletContext servletContext;
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
private someMethod(){
servletContext.getRealPath("/WEB-INF/"); //this return null
}
}
PS servletContext
自体がありますnullではなく、.getRealPath("/WEB-INF/")
メソッド
もちろん、あなた自身が 'new MyFactory()'を呼び出すのではなく、Springがあなたのためにクラスをインスタンス化するようにしていますか? 'someMethod()'は* autowiringが完了したあとも呼ばれます。 – Andreas
はい、どちらも正しい。 – user1935987