mel*_*ane 6 java hibernate-validator
该应用程序可以保留用户,以后可以修改。最近无法修改用户并HV000028抛出异常。用户实体被持久化,没有错误或验证。有人知道是什么导致了这种行为,或者我如何找到更多细节?
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) Caused by: javax.validation.ValidationException: HV000028: Unexpected exception during isValid call.
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:451)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:127)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:592)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:555)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:490)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:454)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:406)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:204)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:253)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at sun.reflect.GeneratedMethodAccessor427.invoke(Unknown Source)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2018-06-29 13:40:29,612 INFO [stdout] (default task-48) at java.lang.reflect.Method.invoke(Method.java:498)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:507)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at com.sun.proxy.$Proxy287.validate(Unknown Source)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at ch.lmv.ulm.web.page.template.BasePanel.doCompleteJSR303Validation(BasePanel.java:65)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at ch.lmv.ulm.web.page.template.BasePanel.doCompleteJSR303Validation(BasePanel.java:49)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at ch.lmv.ulm.web.page.person.EditPersonPanel$7.onSubmit(EditPersonPanel.java:420)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:110)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1307)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.markup.html.form.Form.process(Form.java:974)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:795)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:588)
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) ... 82 more
2018-06-29 13:40:29,613 INFO [stdout] (default task-48) Caused by: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
从您的堆栈跟踪中,验证在某些 NullPointerException 上失败,但它在最后一行。您应该已经发布了完整的堆栈跟踪。
另请注意,导致异常的不是 Hibernate(ORM),而是 Hibernate Validator,这是完全不同的事情。
这个验证器对从 wicket 调用的输入对象执行了一系列验证,请参阅:ch.lmv.ulm.web.page.template.BasePanel.doCompleteJSR303Validation。
现在不好的部分是您的日志系统可能没有正确配置。很难说你的日志系统到底发生了什么,因为你没有提供任何关于它的细节。
在正确的配置中,堆栈跟踪的异常应该打印为多行字符串(一个单独的 INFO 消息)而不是一系列消息(您在每一行都有 INFO,这是错误的)。
调用日志的正确方式(例如在 slf4j 框架中)应该是:
try {
... execute validation code
}catch (<SomeKindOfValidationExceptionYouExpectToGet> ex) {
logger.error("Failed to validate <or better message>", ex);
}
Run Code Online (Sandbox Code Playgroud)
请注意,您在此处将异常作为附加参数传递。
| 归档时间: |
|
| 查看次数: |
11121 次 |
| 最近记录: |