現在、mavenise
プロジェクトを試しています。しかし、私のプロジェクトでは、いくつかのBeanを含むxml
ファイルを見つけることができません。 combined2.xml
私はそれを次のように定義しています:
public RepeatingGrpPoC() {
appContext = new ClassPathXmlApplicationContext(
new String[] { "src/main/Java/resources/combined2.xml",});
c = 0;
}
しかし、私には不明な理由で、常にエラーが発生します。
スレッド「main」での例外org.springframework.beans.factory.BeanDefinitionStoreException:クラスパスリソース[src/main/Java/resources/combined2.xml]からXMLドキュメントを解析するIOExceptionネストされた例外はJava.io.FileNotFoundExceptionです。クラスパスリソース[src/main/Java/resources/combined2.xml]は、org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader。 Java:341)org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:302)at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:frame.143)で.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:178)(org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:149))org.springframetractfactorfactor.Defbserfactory.factors.factors.factors.factors.Reader.factors.AbstractFactory.DefinitionReader.DefinitionReader.Support.Readers.DefinitionReader.DefinitionReader.support.Readers.Beanbsfactor.Reader.AbstractFactory.DefinitionReader.DefinitionReader.Supports.Beanbsfactor.Reader.AbstractFact.Reader.AbstractFactory.DefinitionReader.Support.Abs org.springframework.context.support.AbstractXmlApplicationContext.loadBeaの.loadBeanDefinitions(AbstractBeanDefinitionReader.Java:212) nDefinitions(AbstractXmlApplicationContext.Java:126)at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.Java:92)at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.Java.frame at130) .context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.Java:465)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:395)at org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.Java: 139)org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.Java:93)at metadataPoC.RepeatingGrpPoC。(RepeatingGrpPoC.Java:34)at metadataPoC.Main.main(Main.Java:22)原因:Java。 io.FileNotFoundException:クラスパスリソース[src/main/Java/resources/combined2.xml]を開けませんorg.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.Java:141)org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.Java:328)に存在しないため... 14以上
相対パスを指定したので、プログラムはこのファイルをどこで探しますか?
クラスパスからこのファイルをロードしようとしているため、見つかりません。 "combined2.xml"
ではなく"src/main/Java/resources/combined2.xml"
のみを指定して、src/main/Java/resourcesがクラスパスにあることを確認してください。
ちなみに、Mavenでは、リソースの標準ディレクトリはsrc/main/resources
なので、このファイルをそこに置くことをお勧めします。
Maven、リソースの標準ディレクトリはsrc/main/resourcesなので、ここにファイルを保持すると、それが使用されます。パスにファイル名を指定するだけです。
例
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-context.xml");
私はそれが私のために働いた同じ問題を抱えていました
リソースフォルダー内の.xmlを置き換えて、次のように記述する必要があります。
String[] contextPaths = new String[] {"Xxx.xml"};
new ClassPathXmlApplicationContext(contextPaths);
追加の構成を行わなかった場合、すべての.htmlおよび.xmlファイルはdafaultによってリソースフォルダーを検索します
これを試して
appContext = new ClassPathXmlApplicationContext(
new String[] { "/**/combined2.xml", "/**/xxx.xml"});
Xmlファイルの相対パスを使用できます。相対パス:XMLファイルが配置されているパッケージへの相対パス。
例えば。想定する
package = beanfactory,
xml file name = application-context.xml,
このパッケージの下にあるxmlファイル。次に、パスを「/beanfactory/application-context.xml」として指定します
ApplicationContext factory=new
ClassPathXmlApplicationContext("/beanfactory/application-context.xml");
これはエラーなしで機能します。