Eclipselink Bean Validation - Identificar constraint não validada

4 respostas
E

Olá,

Estou me descabelando aqui… Preciso encontrar qual constraint está sendo violada no Bean Validation mas não consigo. Alguém conhece alguma forma de sair em algum log qual constraint está sendo violada?

4 Respostas

E

Sei que não é legal ficar dando up no tópico, mas se alguém puder me ajudar…

Segue um stackTrace do erro:

<blockquote>

Caused by: javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated while executing Automatic Bean Validation on callback event:prePersist. Please refer to embedded ConstraintViolations for details.

at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.validateOnCallbackEvent(BeanValidationListener.java:90)

at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.prePersist(BeanValidationListener.java:62)

at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyListener(DescriptorEventManager.java:698)

at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyEJB30Listeners(DescriptorEventManager.java:641)

at org.eclipse.persistence.descriptors.DescriptorEventManager.executeEvent(DescriptorEventManager.java:200)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectClone(UnitOfWorkImpl.java:4246)

at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.cloneAndRegisterNewObject(RepeatableWriteUnitOfWork.java:594)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalRegisterObject(UnitOfWorkImpl.java:2904)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerObject(UnitOfWorkImpl.java:4335)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerObject(UnitOfWorkImpl.java:4293)

at org.eclipse.persistence.mappings.CollectionMapping.buildElementUnitOfWorkClone(CollectionMapping.java:267)

at org.eclipse.persistence.mappings.CollectionMapping.buildElementClone(CollectionMapping.java:277)

at org.eclipse.persistence.internal.queries.ContainerPolicy.addNextValueFromIteratorInto(ContainerPolicy.java:213)

at org.eclipse.persistence.mappings.CollectionMapping.buildCloneForPartObject(CollectionMapping.java:203)

at org.eclipse.persistence.internal.indirection.TransparentIndirectionPolicy.cloneAttribute(TransparentIndirectionPolicy.java:149)

at org.eclipse.persistence.mappings.ForeignReferenceMapping.buildClone(ForeignReferenceMapping.java:250)

at org.eclipse.persistence.internal.descriptors.ObjectBuilder.populateAttributesForClone(ObjectBuilder.java:3475)

at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.cloneAndRegisterNewObject(RepeatableWriteUnitOfWork.java:589)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalRegisterObject(UnitOfWorkImpl.java:2904)

at org.eclipse.persistence.internal.sessions.MergeManager.registerObjectForMergeCloneIntoWorkingCopy(MergeManager.java:940)

at org.eclipse.persistence.internal.sessions.MergeManager.mergeChangesOfCloneIntoWorkingCopy(MergeManager.java:500)

at org.eclipse.persistence.internal.sessions.MergeManager.mergeChanges(MergeManager.java:271)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWithReferences(UnitOfWorkImpl.java:3487)

at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.mergeCloneWithReferences(RepeatableWriteUnitOfWork.java:376)

at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.mergeCloneWithReferences(UnitOfWorkImpl.java:3447)

at org.eclipse.persistence.internal.jpa.EntityManagerImpl.mergeInternal(EntityManagerImpl.java:486)

at org.eclipse.persistence.internal.jpa.EntityManagerImpl.merge(EntityManagerImpl.java:463)

at com.sun.enterprise.container.common.impl.EntityManagerWrapper.merge(EntityManagerWrapper.java:286)

at br.com.facade.AbstractFacade.edit(AbstractFacade.java:35)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)

at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)

at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5366)

at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)

at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)

at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)

at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:46)

at sun.reflect.GeneratedMethodAccessor1315.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)

at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)

at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)

at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)

at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)

at sun.reflect.GeneratedMethodAccessor1314.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)

at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)

at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)

at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5338)

at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5326)

at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)

 59 more</blockquote>
calel

A exceção ConstraintViolationException possuí um método chamado getConstraintViolations, acho que isso deve resolver seu problema. Me avise se isso resolver mesmo =]

Fonte: http://docs.oracle.com/javaee/6/api/javax/validation/ConstraintViolationException.html

E

valeu, vou testar aqui e amanhã posto a resposta!

Valeu mesmo.

E

sorry, não encontrava o link da página, rsrsr

Deu certo sim, valeu!!

Criado 15 de fevereiro de 2012
Ultima resposta 25 de fev. de 2012
Respostas 4
Participantes 2