2012-01-05 6 views
0

私はデータベースストレージシステムを使用するWebアプリケーションで作業しており、残りの部分とは別にdataAccess-applicationcontextを使用することを選択しました。しかし、次のコード行を実行すると、存在しないことが示されます。Spring 3.0がapplicationcontext.xmlを見つけられない

ApplicationContext ac = new ClassPathXmlApplicationContext("dataAccess-applicationContext.xml", UsageDataDAO.class); 

xmlファイルを同じディレクトリに移動しただけでも、以下のようなエラーが表示されます。

ネストされた例外はjava.io.FileNotFoundExceptionです:それは

何任意のアイデアを存在しないため、クラスパスリソース[COM/foobarに/バー/ fooの/ DATAACCESS-applicationContext.xmlを]は開くことはできませんここにいるの?

+0

は、ファイルのですか?あなたのコード行を含むクラスはどのパッケージですか? – jtoberon

+0

私は、同じディレクトリ、直上のディレクトリ、WEB-INF、およびアプリケーションのルートにあるファイルを試してみました。いずれも機能しません。 –

答えて

0

dataAccess-applicationContext.xmlではなく、dataAccess_applicationContext.xmlの下線を使用してファイル名を編集してください。そしてさらに試みる。

+0

試してくれてありがとうございました。 –

0

クラスパス*:接頭辞を付けて試してください。 "classpath *:/ dataAccess-application-context.xml"

+0

申し訳ありませんが、これはエラーのいずれかに役立ちません。助けてくれてありがとう。 –

1

これは、すべての詳細なしではデバッグは難しいしかし、それは2つの問題の1つでなければならない。

まず、ファイルは本当にクラスパスにありません。これはWebアプリケーションなので、クラスパスを確認するときはhow your particular servlet container worksと考えるべきです。たとえば、サーブレット環境では、WEB-INFはクラスパスにはありませんが、WEB-INF/classesはクラスパスにあります。

第2に、ファイルはクラスパスにありますが、間違って参照しています。あなたがすでに提供した情報に基づいて、私はこれが当てはまるとは思わないが、この可能性は後で拡大することができる。

ファイルを手動でロードしようとしているのはどうですか? web.xmlにconfigsを参照する必要があります。 Webアプリケーションをどのように実行しているかについて詳しく説明していただければ、この部分についてお手伝いします。その間、この例は十分な情報かもしれません。これは、(特定のサーブレットを設定すると、わずかに異なるアプローチが必要です)コンテナ内のサーブレットとフィルタのすべてで共有のルート春のコンテナを設定する方法を示しています。

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/config1.xml, /WEB-INF/config2.xml</param-value> 
</context-param> 
0

あなたの第二パラメータ:

ApplicationContext ac = 
    new ClassPathXmlApplicationContext("dataAccess-applicationContext.xml", 
     UsageDataDAO.class); 

を含む。UsageDataDAO.class。このクラスのスプリングjavadocによれば、これはコンテキスト検索の開始をcom/foobar/bar/foo/に要求しています。

代わりWEB-INF /クラスDATAACCESS-applicationContext.xmlをを入れて試してみてください。どのようなディレクトリ

ApplicationContext ac = 
    new ClassPathXmlApplicationContext("dataAccess-applicationContext.xml"); 
UsageDataDAO myDao = (UsageDataDAO) ac.getBean("MyDaoBeanName"); 
関連する問題