【问题标题】:Error when trying to save to database尝试保存到数据库时出错
【发布时间】:2015-10-13 06:46:07
【问题描述】:

我收到此错误我不知道我在哪里做错了请帮助。提前致谢:

javax.el.PropertyNotFoundException:在类型 org.hibernate.exception.GenericJDBCException 上属性“消息”不可读 javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:335) javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:283) javax.el.BeanELResolver.getValue(BeanELResolver.java:95) org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110) org.apache.el.parser.AstValue.getValue(AstValue.java:169) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:936) org.apache.jsp.WEB_002dINF.views.Error_jsp._jspService(Error_jsp.java:100) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

【问题讨论】:

  • 一个好主意是提供您想要向数据库添加内容时使用的代码

标签: spring model-view-controller


【解决方案1】:

根据堆栈跟踪,您正试图通过 error.jsp 上的 EL(表达式语言)显示来自异常的错误消息,可能像这样:

${exception.message}

正如@dunni 指出的那样,它应该可以工作,因为 GenericJDBCException 有方法 getMessage()。

你可以尝试显式调用方法:

${exception.getMessage()}

此异常指出消息属性不可读。 您是否将 GenericJDBCException 作为内部类包装到其他类中并且可见性不公开,如下所示:

 // note that this is a package-private visible class
 class ExceptionWrapper {
     private Throwable exception;

     public Throwable getException() {
         return exception;
     }
 }

或者像这样:

public class ExceptionWrapper {
     private Throwable exception;

     // note that access is package-private method
     Throwable getException() {
         return exception;
     }
 }

由于使用的是Spring,所以可以使用它的Exception Resolver机制来解决不同类型的异常,如下图:https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc

【讨论】:

  • 每个异常都有getMessage()方法,它是Throwable的一部分。
猜你喜欢
  • 2017-04-15
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
相关资源
最近更新 更多