Bonjour,

J'ai un projet JEE à réaliser et actuellement je cherche à faire une page d'enregistrement pour les utilisateurs. Les utilisateurs seront enregistré dans une base de donnée MySQL.

J'ai donc créé une page addUser.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Add user</title>
</head>
<body>
 
    <h2>New user</h2>
 
    <c:if test="${errors}">
        <p style="color: red">Des erreurs sont présentes sur le formulaire</p>
    </c:if>
 
    <form action="<%= request.getContextPath() %>/adduser" method="post">
 
        <p>
            <label for="lastname">Lastname :</label>
            <input type="text" size="40" name="lastname" id="lastname" />
        </p>
 
        <p>
            <label for="firstname">Firstname :</label>
            <input type="text" size="40" name="firstname" id="firstname" />
        </p>
 
        <p>
            <label for="country">Country :</label>
            <textarea name="country" id="country" cols="40"></textarea>
        </p>
 
        <p>
            <label for="age">Age</label>
            <input type="text" size="10" name="age" id="age" />
        </p>
 
        <p>
            <input type="submit" value="Ajouter" />
        </p>
 
    </form>
 
    <%@ include file="/footer.jsp" %>
 
</body>
</html>
Une page persistence.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    version="2.0">
 
    <persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
 
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
 
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
            <property name="hibernate.connection.user" value="root" />
            <property name="hibernate.connection.password" value="root" />
            <property name="hibernate.connection.url" value="jdbc:mysql://192.168.152.1:3306/supmessaging" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
        </properties>
    </persistence-unit>
</persistence>
Avec l'IP de ma machine.

Une page User.java pour mon entité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.supinfo.supmessaging.entity;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
 
@Entity
@Table(name = "users")
public class User {
 
    @Id
    @GeneratedValue
    private long id;
 
    private String firstname;
 
    private String lastname;
 
    private String country;
 
    private float age;
 
    public long getId() {
        return id;
    }
 
    public void setId(long id) {
        this.id = id;
    }
 
    public String getFirstName() {
        return firstname;
    }
 
    public void setFirstName(String firstname) {
        this.firstname = firstname;
    }
 
    public String getLastName() {
        return lastname;
    }
 
    public void setLastName(String lastname) {
        this.lastname = lastname;
    }
 
    public String getCountry() {
        return country;
    }
 
    public void setCountry(String country) {
        this.country = country;
    }
 
    public float getAge() {
        return age;
    }
 
    public void setAge(float age) {
        this.age = age;
    }
}
et enfin une page AddUserServlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.supinfo.supmessaging.servlet;
 
import java.io.IOException;
import java.util.List;
 
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.supinfo.sun.supcommerce.bo.SupProduct;
import com.supinfo.sun.supcommerce.doa.SupProductDao;
import com.supinfo.supmessaging.entity.User;
 
@WebServlet(urlPatterns = "/auth/addProduct")
public class AddUserServlet extends HttpServlet {
 
    private EntityManagerFactory emf;
 
    @Override
    public void init() throws ServletException {
        emf = Persistence.createEntityManagerFactory("PU");
    }
 
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
        boolean errors = false;
 
        String firstname = req.getParameter("firstname");
        String lastname = req.getParameter("lastname");
        String country = req.getParameter("country");
        String ageParam = req.getParameter("age");
 
        if (firstname == null || firstname.trim().isEmpty() || country == null || country.trim().isEmpty()) {
            errors = true;
        }
 
        float age = 0;
 
        try {
            age = Float.valueOf(ageParam);
        } catch (NumberFormatException e) {
            errors = true;
        }
 
        if (errors) {
            req.setAttribute("errors", true);
            RequestDispatcher rd = req.getRequestDispatcher("/addUser.jsp");
            rd.forward(req, resp);
        } else {
 
            EntityManager em = emf.createEntityManager();
 
            User user = new User();
            user.setFirstName(firstname);
            user.setLastName(lastname);
            user.setCountry(country);
            user.setAge(age);
 
            em.getTransaction().begin();
            em.persist(user);
            em.getTransaction().commit();
            em.close();
 
            resp.sendRedirect(req.getContextPath() + "/profileUser?id=" + user.getId());
        }
    }
 
    public void destroy() {
        emf.close();
    }
}
Quand j'essaye d'ajouter un nouvel utilisateur, j'obtiens une nouvelle fenêtre avec un message d'erreur
Etat HTTP 404 - /SupMessaging/adduser

type Rapport d''état

message /SupMessaging/adduser

description La ressource demandée n'est pas disponible.

Apache Tomcat/7.0.56
Et ma base de données ne se met pas à jour.

J'ai par ailleurs créé la table "users" avec les colonnes "firstname" "lastname" "age" "country" "id" :
Nom : Capture.JPG
Affichages : 145
Taille : 123,8 Ko

Quelqu'un aurait-il une idée pour me débloquer ?

Merci d'avance pour votre aide.