5

何らかの理由 (shiro フィルター) で、アプリケーション コンテキスト ファイルを WEB-INF フォルダーに保存しました。Tomcatを実行するとすべてが機能しますが、次を使用してコントローラーからアプリケーションコンテキストを取得しようとすると:

context = new ClassPathXmlApplicationContext(fileContext);

私はいつもこの例外を受け取ります:

IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist

Eclipse では、クラスパスの下に WEB-INF を含めることができないようです。ここでスタックオーバーフローで多くの質問を調べましたが、まだ解決策が見つかりませんでした。

applicationContext.xml ファイルを src/main/java フォルダーの下に移動すると、コンテキストを取得できますが、web.xml ファイルに定義された shiro filder は、applicationContext ファイルの下に定義された shiro Bean を表示できません (チェックされ、Bean は正しく機能しています)。src/main/java からコンテンツを取得するように web.xml に指示するにはどうすればよいですか? または、どうすればapplicationContext.xmlに到達できますか

4

4 に答える 4

1

使用する

context = new FileSystemXmlApplicationContext(fileContext);

それ以外の

context = new ClassPathXmlApplicationContext(fileContext);
于 2013-04-11T06:19:05.150 に答える
1

コントローラーで のインスタンスを作成しないApplicationContextでください。春DispatcherServletはすでにあなたのためにそれを作成します。必要なのは、アプリケーション コンテキスト ファイル内のすべての Bean 宣言にアクセスすることだけです@Autowired

于 2013-04-11T03:00:53.480 に答える
0

問題は、すべての構成ファイルを WEB-INF/classes の下に移動し、プレフィックス クラスパスを追加することで解決されました。

<import resource="classpath:spring-data.xml"/> 

助けてくれてありがとう!本当に感謝しています!

乾杯、 アンドレア

于 2013-04-11T09:05:52.040 に答える