上接“jsp頁面得到業務層的對象”
1.我現在想用org.springframework.orm.hibernate.HibernateTransactionManager來給業務對象織入事務管理方法。但在調試的時候卻發生了異常:Error registering bean with name 'myTransactionManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml],系統在給myTransactionManager Bean注冊的時候卻找不到它的類。的確是很奇怪的問題,HibernateTransactionManager明明就在這兒擺著嘛,怎么系統就是找不到呢。經過幾個小時的查找代碼檔案,發現原來我用的是Hibernate3版本。相應的org.springframework.orm.hibernate.HibernateTransactionManager也應該改成:org.springframework.orm.hibernate3.HibernateTransactionManager.汗!java程序員真累。
2.錯誤2,當我想在頁面上得到織入事務管理的service對象時,又有一個錯誤來了:
org.apache.jasper.JasperException: $Proxy2
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
暈吧,代理人的待遇沒問題了,可是它就是不給你做代理。經過在jsp頁面上的排察:終于找到這一句:
?? RealnewsService newsservice=(RealnewsService)wac.getBean("newsService");
它有什么問題嗎?初學者看不出什么錯誤來,因為語法上一點錯也沒有,后來經高手指點才如夢初醒:
它的聲明類型應該是相應的接口。這是spring一貫的風格,(但這至于讓我出錯嗎?郁悶),好。到今天為址,我和關注我的博客的同學應該對spring應用程序的核心配置文件有了一定的理解了。
總結一句話:解決問題的方法是:來了問題不要怕,用樸素的理念和執著的態度去戰勝bug? ;-)