2017-02-28 4 views
0

私はServletContextListenerを持っています。私はSpringBootから初期化しています。通常、リスナーはServletContextからClassLoaderインスタンスを取得します。ただし、Spring Bootを使用してコンテナに追加されているため、ServletContextListenergetClassLoader()メソッドを呼び出すことはできません。 (これは、web.xml、ウェブ-fragment.xml、または@WebListener注釈を経由して初期化しなければなりません。)SpringBootでServletClassLoaderがgetClassLoaderを呼び出せません。

ので、ServletContextListenerへの適切ClassLoaderインスタンスを取得するための最良の方法は何ですか?

答えて

0

私はこの問題には2つの潜在的な解決策になってしまった:

  1. が注入さResourceLoaderからClassLoaderインスタンスを取得します。 Spring BootのClassLoaderインスタンスが返され、Webコンテナは返されなかったので、私はこのアプローチをとらないことにしました。

  2. ServletContextインスタンスをBean作成メソッドに挿入し、ServletContextListenerコンストラクタに渡します。これは、ServletContextをラップし、例外をスローするメソッドをオーバーライドすることによって制限を実装するTomcatで機能します。注入することで、制限を実装していない展開されていないバージョンを使用することができました。これは他のコンテナでは機能しない可能性があります。

関連する問題