我有以下“Beans.xml”;它在 Eclipse 中的“src”文件夹中:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="user1" class="rc.User">
<property name="name" value="joe" />
</bean>
</beans>
我有以下java应用程序:
package rc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Asparagus
{
public static void main (String[] arguments)
{
ApplicationContext context = null;
try
{
context = new ClassPathXmlApplicationContext("Beans.xml");
}
catch (ExceptionInInitializerError eiie)
{
System.out.println(eiie);
}
System.out.println("hi");
User u = context.getBean("user1", User.class);
System.out.println("hi2");
System.out.println(u);
}
}
这是在 Eclipse 中的 'src' 文件夹内的一个 'rc' 包中。我有一个 User bean 类,我想我不妨包括它:
package rc;
public class User
{
public User() {}
public String name;
public String getName() {return name; }
public void setName(String name) {this.name = name; }
}
当我运行它时,我得到 FileNotFoundException。我能想到的唯一文件是我的 XML 文件,但我不知道它为什么会出现问题。
我使用 DOS 查看目录结构,验证“Beans.xml”是否位于应用程序类路径的根目录中,位于 src 和 bin 下。我认为这一点可以通过 Asparagus 类(有人反对它被称为“Main”)被发现并开始运行这一事实得到证实,如果 src/bin 不是类路径根目录,eclipse 就无法做到这一点。
我最近在别人的建议下包含了一堆乱七八糟的库,这个问题消失了,我发现另一个问题(在 StackOverflow 中)是由一个 jar 作为系统库包含在 eclipse 中引起的,所以我拿了除了 java 运行时之外的所有系统库。
我真的不希望通过添加一堆库而不知道它们应该做什么来解决这个问题。有人可以解释这里发生了什么以及为什么建议的解决方案可以解决问题吗?