Erreur "java.lang.IllegalStateException"
Bonjour:
j'ai crée un petit projet avec JPA et JSF le problème lorsque j’exécute la méthode d'ajout dans le serveur Tomcat
une exception s'affiche
java.lang.IllegalStateException:
Exception Description: Transaction is currently active
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public void ajouter(User u){
try {
EntityTransaction tx = getEntityManager().getTransaction();
tx.begin();
getEntityManager().persist(u);
tx.commit();
} catch (Exception e) {
System.out.println(e);
}
} |
La classe AddUser.jsf
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| <%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<f:view>
<html>
<head>
<title>Insert title here</title>
</head>
<center>
<body>
<h:form>
<center><h1>Ajouter un utilisateur</h1></center>
<h>login</h>
<h:inputText value="#{UserCtrl.newUser.login}"></h:inputText>
<h>pws</h>
<h:inputSecret value="#{UserCtrl.newUser.pwd}" />
<h>nom</h>
<h:inputText value="#{UserCtrl.newUser.nom}"></h:inputText>
<h>prenom</h>
<h:inputText value="#{UserCtrl.newUser.prenom}"></h:inputText>
<h>mail</h>
<h:inputText value="#{UserCtrl.newUser.mail}"></h:inputText>
<h>role</h>
<h:inputText value="#{UserCtrl.newUser.role}"></h:inputText>
<h>sexe</h>
<h:inputText value="#{UserCtrl.newUser.sexe}"></h:inputText>
<h>niv</h>
<h:inputText value="#{UserCtrl.newUser.niveau}"></h:inputText>
<br>
<h:commandButton value="ok" action="#{UserCtrl.ajoutUser}"></h:commandButton>
</center>
</h:form>
</body>
</html>
</f:view> |
la classe userCtrl.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| package com.FirstWebProject.Bean;
import com.FirstWebProject.DAO.UseDAO;
import com.FirstWebProject.Persistance.User;
public class UserCtrl {
private UseDAO useDAO = new UseDAO() ;
private User newUser = new User();
private User cUser = new User();
public String cnx(){
return useDAO.connexion(cUser.getLogin(), cUser.getPwd());
}
public String ajoutUser(){
useDAO.ajouter(newUser);
return "ajout";
}
public void setNewUser(User newUser) {
this.newUser = newUser;
}
public User getNewUser() {
return newUser;
}
public void setcUser(User cUser) {
this.cUser = cUser;
}
public User getcUser() {
return cUser;
}
} |