Struts1.2+Spring2.0+Hibernate3.1项目框架构建中的问题及解决方法集锦(2) 在项目构建是使用MySQL作数据库的过程又出现了两个Bug: 严重: Servlet.service() for servlet jsp threw exception javax.servlet.jsp.JspException: No getter method for property userid of bean org.apache.struts.taglib.html.BEAN at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:973) at org.apache.struts.taglib.html.BaseFieldTag.divpareValue(BaseFieldTag.java:121) at org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102) at org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:81) at org.apache.jsp.modules.login_jsp._jspx_meth_html_005ftext_005f0(login_jsp.java:228) at org.apache.jsp.modules.login_jsp._jspx_meth_html_005fform_005f0(login_jsp.java:169) at org.apache.jsp.modules.login_jsp._jspx_meth_html_005fhtml_005f0(login_jsp.java:130) at org.apache.jsp.modules.login_jsp._jspService(login_jsp.java:83) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at com.morecans.test.LoginFilter.doFilter(LoginFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Thread.java:619) 2007-7-15 15:05:10 org.apache.catalina.core.StandardWrapperValve invoke 分析: No getter method for property userid of bean org.apache.struts.taglib.html.BEAN表明在modules.login.jsp中的表单设计中存在userid属性在对应的actionform bean中找不到对应的属性或者setter/getter方法
解决方法: 在actionform bean中加入相应的属性及setter/getter方法。
严重: Servlet.service() for servlet action threw exception java.sql.SQLException: Table 'morecans.morecans__customer' doesn't exist at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2926) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666) at com.mysql.jdbc.Connection.execSQL(Connection.java:2978) at com.mysql.jdbc.Connection.execSQL(Connection.java:2902) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:933) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1027) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:120) at org.hibernate.loader.Loader.getResultSet(Loader.java:1272) at org.hibernate.loader.Loader.doQuery(Loader.java:391) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218) at org.hibernate.loader.Loader.loadEntity(Loader.java:1345) at org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:116) at org.hibernate.loader.entity.EntityLoader.load(EntityLoader.java:101) at org.hibernate.persister.entity.BasicEntityPersister.load(BasicEntityPersister.java:2471) at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:351) at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:332) at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:113) at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:167) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:79) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:621) at org.springframework.orm.hibernate3.HibernateTemplate$2.doInHibernate(HibernateTemplate.java:489) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372) at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:483) at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:477) at com.morecans.test.pojo.CustomerDAO.findById(CustomerDAO.java:53) at com.morecans.test.struts.action.LoginAction.execute(LoginAction.java:74) at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.morecans.test.EncodingFilter.doFilter(EncodingFilter.java:27) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.morecans.test.LoginFilter.doFilter(LoginFilter.java:32) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Thread.java:619) 分析: Table 'morecans.morecans__customer' doesn't exist 表明hibernate找不到customer表,这里主要是由于连接mysql时必须提供了数据库名morecans造成找不到数据表。
解决方法: 去掉customer.hbm.xml中<class name="com.morecans.test.pojo.Customer" table="customer" catalog="morecans">的catalog="morecans,就可以解决此问题。
相关资源: Struts+Spring+Hibernate项目框架构建中的问题及解决方法集锦(1) 本文来源:http://blog.csdn.net/Morecans/archive/2007/07/19/1699146.aspx
|