need help with entityManager.persist
victorvd Apr 6, 2008 11:12 AMClick HELP for text formatting instructions. Then edit this text and check the preview.im getting crazy looking how to solve this message:
Exception during request processing: Caused by javax.servlet.ServletException with message: "#{Registro.registro}: org.hibernate.validator.InvalidStateException: validation failed for: org.domain.SerpientesEscaleras.entity.Jugador"
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) java.lang.Thread.run(Thread.java:613)
this is my code:
Registro.java:
@Name("Registro") public class Registro { @Logger private Log log; @In FacesMessages facesMessages; @In EntityManager entityManager; private boolean registrado; public void registro() { try { Jugador jugador = new Jugador("#{jugadorHome.instance.jugadorNombre}", "#{jugadorHome.instance.jugadorApellidoPaterno}", "#{jugadorHome.instance.jugadorApellidoMaterno}}", "#{jugadorHome.instance.jugadorEmail}", "#{jugadorHome.instance.jugadorUsername}", "#{jugadorHome.instance.jugadorPassword}", "novato", new java.sql.Date(System.currentTimeMillis()), 0, 0); entityManager.persist(jugador); facesMessages.add("El usuario #{jugadorHome.instance.jugadorUsername} fue agregado con exito!"); registrado = true; } catch (NoResultException ex) { facesMessages.add("No se pudo registrar al usuario, verifique la informacion."); registrado=false; } } @Remove @Destroy public void destroy() {} }
Registro.xhtml
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:rich="http://richfaces.org/rich" xmlns:a="http://richfaces.org/a4j" template="layout/template.xhtml"> <ui:define name="body"> <h:messages globalOnly="true" styleClass="message"/> <rich:panel> <f:facet name="header">Area de Registro</f:facet> <h:form id="RegistroForm"> <s:validateAll> <p>Por favor escribe tu informacion para registrarte al jugador</p> <div class="dialog"> <s:decorate id="jugadorNombreDecoration" template="layout/edit.xhtml"> <ui:define name="label">Nombre</ui:define> <h:inputText id="jugadorNombre" required="true" size="50" maxlength="50" value="#{jugadorHome.instance.jugadorNombre}"> <a:support event="onblur" reRender="jugadorNombreDecoration" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> <s:decorate id="jugadorApellidoPaternoDecoration" template="layout/edit.xhtml"> <ui:define name="label">Apellido Paterno</ui:define> <h:inputText id="jugadorApellidoPaterno" required="true" size="50" maxlength="50" value="#{jugadorHome.instance.jugadorApellidoPaterno}"> <a:support event="onblur" reRender="jugadorApellidoPaternoDecoration" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> <s:decorate id="jugadorApellidoMaternoDecoration" template="layout/edit.xhtml"> <ui:define name="label">Apellido Materno</ui:define> <h:inputText id="jugadorApellidoMaterno" required="true" size="50" maxlength="50" value="#{jugadorHome.instance.jugadorApellidoMaterno}"> <a:support event="onblur" reRender="jugadorApellidoMaternoDecoration" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> <s:decorate id="jugadorEmailDecoration" template="layout/edit.xhtml"> <ui:define name="label">E-mail</ui:define> <h:inputText id="jugadorEmail" required="true" size="50" maxlength="100" value="#{jugadorHome.instance.jugadorEmail}"> <a:support event="onblur" reRender="jugadorEmailDecoration" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> <s:decorate id="jugadorUsernameDecoration" template="layout/edit.xhtml"> <ui:define name="label">jugadorUsername</ui:define> <h:inputText id="jugadorUsername" required="true" size="20" minlength="4" maxlength="20" value="#{jugadorHome.instance.jugadorUsername}"> <a:support event="onblur" reRender="jugadorUsernameDecoration" bypassUpdates="true" ajaxSingle="true"/> </h:inputText> </s:decorate> <s:decorate id="jugadorPasswordDecoration" template="layout/edit.xhtml"> <ui:define name="label">jugadorPassword</ui:define> <h:inputSecret id="jugadorPassword" required="true" size="20" minlength="4" maxlength="20" value="#{jugadorHome.instance.jugadorPassword}"> <a:support event="onblur" reRender="jugadorPasswordDecoration" bypassUpdates="true" ajaxSingle="true"/> </h:inputSecret> </s:decorate> </div> <div style="clear:both"> <span class="required">*</span> Campos Requeridos </div> <div class="actionButtons"> <h:commandButton id="registro" value="Registrar" view="/Jugador.xhtml" action="#{Registro.registro}"/> <s:button value="Cancelar" action="/login.xhtml"/> </div> </s:validateAll> </h:form> </rich:panel> </ui:define> </ui:composition>