Exception : Could not commit transaction
wadhah Dec 22, 2010 12:26 PMHello when i clic on the botton to register i have this exception Could not commit transaction
this is my RegisterBean :
package org.domain.registration.session;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import org.domain.registration.entity.User.User;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.log.Log;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.international.StatusMessages;
@Stateless
@Name("Register")
public class RegisterBean implements Register {
@Logger
private Log log;
@In
StatusMessages statusMessages;
@In
private User user;
@PersistenceContext
private EntityManager em;
// public void register() {
// // implement your business logic here
// log.info("Register.register() action called");
// statusMessages.add("register");
// }
public String register() {
// List<User> existing = em.createQuery(
// "select username from users where username=#{user.username}")
// .getResultList();
// if (existing.size() == 0) {
em.persist(user);
log.info("Registred new user #{user.username}");
return "/registered.xhtml";
// } else {
// FacesMessages.instance()
// .add("User #{user.username} already exists");
// return null;
}
// }
}
and this is my entity bean
package org.domain.registration.entity.User;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Entity
@Name("user")
@Scope(ScopeType.SESSION)
@Table(name = "users")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String username;
private String password;
public User(String name, String username, String password) {
this.name = name;
this.username = username;
this.password = password;
}
public User() {
}
@Id
@NotNull
@Length(min = 5, max = 15)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@NotNull
@Length(min = 5, max = 15)
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Length(max = 20)
@NotNull
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
and this is my register layout
<!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">
<rich:panel>
<f:facet name="header">register</f:facet>
<h:form id="RegisterForm">
<s:validateAll>
<h:panelGrid columns="2">
Username: <h:inputText id="username"
value="#{user.username}" required="true" />
Real Name: <h:inputText id="name" value="#{user.name}"
required="true" />
Password: <h:inputSecret id="password"
value="#{user.password}" required="true" />
</h:panelGrid>
</s:validateAll>
<h:messages id="messages" />
<h:commandButton id="register" value="register!"
action="#{Register.register()}" />
</h:form>
</rich:panel>
</ui:define>
</ui:composition>
here is the exception :
Exception during request processing:
Caused by java.lang.IllegalStateException with message: "Could not commit transaction"
plz i need a help