这是我的初始化Bean工厂.
ApplicationContext ac=new FileSystemXmlApplicationContext("/WEB-INF/applicationContext.xml");
applicationContext.xml就放在WEB-INF下。可是系统却报错IOException,
系统找不到指定的文件applicationContext.xml,这是为什么??????
已经解决
原因很多。我觉得最关键原因是:对xml配置细节不重视;
1.jsp是web工程,这儿应该用webApplicationContext加载applicationContext.xml,在加载它的过程中还有找不到它的时候,我找了不少文档,有的说应该把它放到WEB-INF/classes/下才对,但我实验时还是找不到。用了个笨法,复制两份每个目录放一个--解决
2.提示service bean找不到注入的XXTarget bean,应该把属性下的ref 用bean表示,不应该用local表示.
3.提示hibernate sql 异常,提示在我们的数据库里找不到我们的表。再往下看发现我们的表名都变长了(仔细观察发现其结构是数据库名—表名)。这是怎么回事???
经过一番折腾,发现在hbm.xml里面有一个可先项catalog="dbname".它是我们在做配置的时候组件自己加上去的,这样自动自成的表名是对应的标准表名的。但遗憾的是我们通常不按标准给表起名。所以在这儿只能把catalog手动的去掉了。
好了。这样我们就可以在jsp页面里得到业务层的对象了,方法是传统的
wac.getBean("serviceID");