2012-10-05 6 views
10

でクラスパスリソースを見つけることができません。春は、私はこのような組織化プロジェクトを持っている内側のjarファイル

<param-value> 
    /WEB-INF/applicationContext.xml 
</param-value> 

をそしてapplicationContext.xmlに私が持っている::web.xml

私が持っている

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

をしかし、私は実行したとき、私はこのエラーを取得する:

2012-10-04 20:03:39,156 [localhost-startStop-1] springframework.web.context.ContextLoader ERROR: Context initialization failed 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:/company/config/spring-config.xml] 
Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [company/config/spring-config.xml]; nested exception is java.io.FileNotFoundException: class path resource [company/config/spring-config.xml] cannot be opened because it does not exist 
    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 
.... 
Caused by: java.io.FileNotFoundException: class path resource [company/config/spring-config.xml] cannot be opened because it does not exist 
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) 
... 36 more 

spring-config.xmlが入っていますwebapp、すべて正常に動作します。

私はスタックトレース上のいくつかのエラーから先導/が削除されていることに気付きました。これは何か関係があるのでしょうか?

また、私は(残念ながら)Spring 2.5を使用しています。

+1

/company/config/spring-config.xmlから削除し、 – Satya

+0

をチェック@Satya:ありがとう、私は同じ結果を得ました。 – JBCP

+0

@JBCP - あなたはいくつかの追加の問題があるので、先頭のスラッシュを削除すると動作しないかもしれませんが、間違いなく先頭のスラッシュでは機能しません。 http://blog.carbonfive.com/2007/05/17/using-classpath-vs-classpath-when-loading-spring-resources/ – GreyBeardedGeek

答えて

13

今後の参考として、多くのデバッグの後に問題を把握しました。これは、Eclipseが瓶のように私の「コア」ライブラリーを構築しますが、Webアプリケーションパッケージのレイアウトをして判明したので、代わりに私のリソースをここに配置されている:

/company/config/spring-config.xml 

それはここに位置していた:

/WEB-INF/company/config/spring-config.xml 

が原因で問題が発生しました。数回前に瓶を点検しましたが、目立たないところに隠れている "/ WEB-INF"が見えていませんでした。

プロジェクトを削除してEclipseに再インポートすると(Mavenのpom.xmlファイル経由で)、問題を修正するだけでは不十分です。

Eclipse固有の.project、.classpath、および.settingsファイルを手動で削除する必要がありました。私がそれをしてプロジェクトを再インポートすると、すべてが修正されました。

レッスンの道徳は:いつも例外に「ファイルが見つかりません」と表示されたらリソースパスを確認してください。

関連する問題