我正面临着集成Eclipse RCP和Spring IOC的一些问题。
以下是我对此过程的处理方法。
我已完成的步骤
在我的RCP项目中创建了一个简单的类,其对象必须通过applicationContext.xml实例化。
public class Triangle {
public void draw(){
System.out.println("Traingle drawn");
}
}
我的applicationContext.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="JGID" class="st.Triangle"/>
</beans>
我的视图的代码片段部分,我正在获取applicationContext.xml,如下所示
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("D:/applicationContext.xml");
Triangle triangle = (Triangle) applicationContext.getBean("JGID");
triangle.draw();
这会引发错误
找不到定义名称为'JGID'的bean的类[st.Triangle] file [D:\ applicationContext.xml];嵌套异常是 java.lang.ClassNotFoundException:st.Triangle
如何解决此错误?
作为一种解决方法,我尝试了另一种方式,我也失败了,如下面所示,使用ClassPathXmlApplicationContext
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
以下是错误
!MESSAGE无法创建视图ID st.view:IOException从类路径资源[applicationContext.xml]解析XML文档;嵌套异常是java.io.FileNotFoundException:类路径资源 无法打开[applicationContext.xml],因为它不存在 !STACK 0 java.io.FileNotFoundException:类路径资源[applicationContext.xml]无法打开
我的Eclipse RCP applcication中的上述代码行,它在哪里检查或查找xml文件。
我尝试了以下方法。
在所有3个案例中,它都是FileNotFoundException
。我应该在哪里放置applicationContext.xml
文件以使applicationContext
引用找到它?
答案 0 :(得分:1)
将spring-context.xml
放在应用程序的类路径中,为了调用它,您需要以下代码
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-context.xml");
Triangle triangle = (Triangle) ctx.getBean("jgid");
triangle.draw();
被盗
答案 1 :(得分:1)
你确定Triangle在“ctx”类路径中吗?
你能直接说明另一个简单的bean吗?例如
<bean id="str" class="java.lang.String" value="Hello World">
然后致电
String str= (String) ctx.getBean("str");