這是我的初始化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");