我在 Main.java 中有这样的代码:
AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
直到最近它才起作用,但我不知道为什么它开始失败以下例外:
spring-config.xml 位于 src / main / resources 文件夹中。线程“main”中的异常 org.springframework.beans.factory.BeanDefinitionStoreException: IOException解析XML文档 类路径资源 [弹簧-config.xml中];嵌套异常 是java.io.FileNotFoundException: 类路径资源 [spring-config.xml]无法打开 因为它不存在
实际上我想了解注释:@Postconstruct和@Predestroy,所以我将构建路径从Jdk 1.5更改为Jdk 1.6。
此后问题就开始了......
为什么它不起作用的任何线索?
注意:如果有人想看我的项目结构,请点击此链接 http://code.google.com/p/javapracticeram/source/browse/trunk/SpringExample/
答案 0 :(得分:11)
查看your classpath,您排除了src/main/resources
和src/test/resources
:
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
有原因吗?尽量不要将类路径排除到spring-config.xml
:)
答案 1 :(得分:3)
检查SpringExample / target / classes的内容。是spring-config.xml吗?如果没有,请尝试手动删除SpringExample / target /目录,并在Eclipse中使用Project =&gt; Clean ...强制重建。
答案 2 :(得分:0)
这是因为spring-config.xml不在classpath中。
将spring-config.xml的完整路径添加到类路径中。
同时编写执行命令以运行项目。您可以在命令中检查classpath。
答案 3 :(得分:0)
有两件事值得指出:
您应该将编译器插件配置为至少编译为java 1.5,以便在使用Maven构建时处理注释。 (也可能影响IDE设置,尽管Eclipse不倾向于关注。)
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
之后,从Maven重新配置项目应该修复它。我不记得在Eclipse中究竟是如何做到的,但是如果你右键单击项目节点并在菜单周围戳一下,你应该找到它。
答案 4 :(得分:0)
我在运行项目时遇到了同样的问题。在检查文件结构时,我意识到Spring的xml文件位于项目的包中,因此无法找到。我把它放在包装外面,效果很好。
答案 5 :(得分:-2)
处理此类错误的最佳方式 - &#34; 使用注释&#34;。
spring.xml - <context:component-scan base-package=com.SpringCollection.SpringCollection"/>
在该类中添加要使用Bean ID的注释(我正在使用类&#34; First&#34;) -
@Component
public class First {
主要类别的变化** -
ApplicationContext context = new AnnotationConfigApplicationContext(First.class); 用这个。