Bonjour,
Je commence le JAVA avec des Servlets et j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
erreur java.io.FileNotFoundException: http://localhost:8080/ProjetJewels/AfficherResultats
J'essaye de faire afficher un tableau de valeur... mais en vain.
Aucun de mes fichiers ne me sort d'erreur.
Ci-dessous "JewelsInWork2", le fichier côté client (l'erreur viendrait de la dernière fonction "Rechercher()":

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
 
package client;
 
 
//java Program to create a simple JDialog 
import java.awt.event.*;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
import java.awt.*;
 
import javax.servlet.annotation.WebServlet;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
 
import SResultSet.SerializedResultSet; 
 
@WebServlet("/AfficherResultats")
class JewelsInWork2 extends JFrame implements ActionListener { 
	private JPanel contentPane;
	private JPanel contentStart;
	private JTextField addPseudo;
	protected static JewelsInWork2 frame;
	private static JList listeResultat;
	private static JTextField valuePseudo;
 
 // frame 
 static JFrame f; 
 static JLabel label;    // member variable
 // main class 
 
    public static void main(String[] args)
    {
        JPanel north = new JPanel();
 
        label = new JLabel();
        label.setHorizontalAlignment(JLabel.CENTER);
 
        JFrame f = new JFrame();
 
        JButton launch = new JButton("Charger");
 
 
		JLabel labelNewPseudo = new JLabel("Pseudo");
		labelNewPseudo.setFont(new Font("Tahoma", Font.BOLD, 14));
		north.add(labelNewPseudo);
 
		valuePseudo = new JTextField(16);
        valuePseudo.setColumns(12);
        north.add(valuePseudo);
 
		JButton boutonRechercher = new JButton("New button");
		launch.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
           	 JewelsInWork2(); 
           	 Rechercher();
			}
		});
 
        north.add(launch);
 
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(north, "North");
        f.getContentPane().add(label, "South");
        f.setSize(300,140);
        f.setLocation(200,200);
        f.setVisible(true);
 
    }
 
	public static void JewelsInWork2() {
 
	    // create a object 
	    JewelsInWork2 MainJewels = new JewelsInWork2(); 
 
		f = new JFrame("Candy Crush");
 
		PanelJeu panelJeu = new PanelJeu();
		panelJeu.setBounds(10, 83, 448, 292);
		f.add(panelJeu);
		panelJeu.setLayout(null);
 
		JPanel panel = new JPanel();
		panel.setBounds(10, 11, 448, 61);
		f.add(panel);
		panel.setLayout(null);
 
 
		JLabel labelPseudoNew = new JLabel(valuePseudo.getText());
		labelPseudoNew.setFont(new Font("Tahoma", Font.BOLD, 14));
		labelPseudoNew.setBounds(10, 11, 222, 23);
		panel.add(labelPseudoNew);
 
	    /*
		JLabel labelPseudo = new JLabel("Pseudo");
		labelPseudo.setFont(new Font("Tahoma", Font.BOLD, 14));
		labelPseudo.setBounds(10, 11, 222, 23);
		panel.add(labelPseudo); */
 
		JButton btnMeilleursScores = new JButton("click");
		btnMeilleursScores.setBounds(303, 11, 135, 23);
	    // add actionlistener to button 
	    btnMeilleursScores.addActionListener(MainJewels); 
		panel.add(btnMeilleursScores);
		panelJeu.start();
 
 
	    // set the size of frame 
	    f.setSize(500, 500); 
 
	    f.show();
	}
 
	JDialog d2;
 
 public void actionPerformed(ActionEvent e) 
 { 
     String MainJewels = e.getActionCommand(); 
     if (MainJewels.equals("click")) { 
    	//Creating a modeless JDialog which doesn't block the 
    	 d2= new JDialog(f,"Les 10 meilleurs scores");
 
 		 listeResultat = new JList();
 		 listeResultat.setBounds(176, 46, 222, 180);
 		 d2.add(listeResultat);
 
    	 d2.pack();
    	 d2.setSize(500,500);
    	 d2.setResizable(false);
    	 d2.setVisible(true);
 
    	 d2.setContentPane(listeResultat);
    	 d2.setLocationRelativeTo(null);
 
     } 
 }
 private static void Rechercher() {
 
	   String res;
 
	   String nom=valuePseudo.getText();
 
	   try
 
	   {
 
	    // Connexion à la servlet
 
	    URL url=new URL("http://localhost:8080/ProjetJewels/AfficherResultats");
 
	    URLConnection connexion=url.openConnection();
 
	    connexion.setDoOutput(true);
 
	    // Récupération du flux de sortie
 
	    ObjectOutputStream fluxsortie = new ObjectOutputStream(connexion.getOutputStream());
 
	    // Envoi du nom à rechercher
 
	    fluxsortie.writeObject(nom);
 
	   // Récupération du flux d’entrée
 
	    ObjectInputStream fluxentree = new ObjectInputStream(connexion.getInputStream());
 
	    // Récupération du résultat de la requête
 
	    SerializedResultSet donnees=(SerializedResultSet) fluxentree.readObject();
 
	    // affichage du résultat
 
	    donnees.first();
 
	    Vector contenu=new Vector();
 
	    contenu.clear();
 
	    listeResultat.setListData(contenu);
 
	    for (int i=0; i<donnees.recordCount();i++)
 
	    {
 
	     res=donnees.getString("nom")+" "+donnees.getString("prenom");
 
	     contenu.addElement(res);
 
	     donnees.next();
 
	    }
 
	    if (donnees.recordCount()==0)
 
	     {
 
	     res="Pas de personne correspondante";
 
	     contenu.addElement(res);
 
	     }
 
	    listeResultat.setListData(contenu);
 
 
 
	   }
 
	   catch (Exception sql)
 
	   {
 
	    System.out.println("erreur "+sql);
 
	   }
 
 
	}
}
Puis le fichier AfficherPersonneServlet :
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
 
package servlets;
 
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletConfig;
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 javax.sql.DataSource;
 
import SResultSet.SerializedResultSet;
 
/**
 * Servlet implementation class AfficherPersonneServlet
 */
@WebServlet("/AfficherResultats")
public class AfficherPersonneServlet extends HttpServlet {
	private Connection BD;
	private DataSource ds;
 
	private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AfficherPersonneServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
	/**
         * @see Servlet#init(ServletConfig)
         */
    public void init(ServletConfig config) throws ServletException  {
 
        try {
 
              System.out.println("Récupération du contexte");
 
              Context initCtx = new InitialContext();
 
              System.out.println("lookup de env");
 
              Context envCtx = (Context) initCtx.lookup("java:comp/env");
 
              System.out.println("lookup de base_test");
 
              ds=(DataSource) envCtx.lookup("jdbc/TestDB");
 
              System.out.println("Datasource chargée");
 
              }
 
              catch(Exception er) {
 
                    System.out.println("Erreur de chargement du contexte " + er);
 
              }
 
     }
 
	/**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
 
    		  throws ServletException, IOException {
 
    		     try {           
 
    		       BD=ds.getConnection();
 
    		       Statement s = BD.createStatement();
 
    		       ResultSet r = s.executeQuery("select * from personne");
 
    		       PrintWriter out=null;
 
    		       response.setContentType("text/html");
 
    		       out = response.getWriter();
 
    		       out.println("<html>");
 
    		       out.println("<head><title> Test servlet </title></head>");
 
    		       out.println("<body>");
 
    		       out.println("Contenu de la table personne <BR>");
 
    		       out.println("<table>");
 
    		       out.println("<TR>");
 
    		       out.println("<TD>Nom</TD>");
 
    		       out.println("<TD>Prénom</TD>");
 
    		       out.println("</TR>");
 
    		       while (r.next()) {
 
    		            out.println("<TR>");
 
    		            out.println("<TD>");
 
    		            out.println(r.getString("nom"));
 
    		            out.println("</TD>");
 
    		            out.println("<TD>");
 
    		            out.println(r.getString("prenom"));
 
    		            out.println("</TD>");
 
    		            out.println("</TR>");
 
    		            }
 
    		       out.println("</table>");
 
    		       out.println("</body>");
 
    		       out.println("</html>");
 
    		       r.close();
 
    		       s.close();
 
    		       BD.close();
 
    		       s = null;
 
    		       r = null;
 
    		     } catch (java.sql.SQLException ex) {
 
    		       System.out.println("Erreur d'exécution de la requête SQL \n"+ex);
 
    		     }
 
    		}
 
	/**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
		protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
			String nomPersonne;
 
			SerializedResultSet sresultat;
 
			try {             
 
			   // Récupération du flux d'entrée envoyé par l'applet
 
			   ObjectInputStream entree=new ObjectInputStream(request.getInputStream());
 
			   nomPersonne=(String)entree.readObject();
 
			   // Préparation du flux de sortie
 
			   ObjectOutputStream sortie=new ObjectOutputStream(response.getOutputStream());
 
			   // Execution de la requête
 
			   sresultat=ExecuterRequete(nomPersonne);
 
			   sresultat.first();
 
			   // Envoi du résultat au client
 
			   sortie.writeObject(sresultat);
 
			   } catch (Exception ex) {
 
			   System.out.println("Erreur d'exécution de la requête SQL : "+ex);
 
			   }
 
			}
 
 
 
			public SerializedResultSet ExecuterRequete(String nom)
 
			{
 
			   try
 
			   {
 
			    // Exécution de la requête
 
			    BD=ds.getConnection();
 
			    Statement s = BD.createStatement();
 
			    ResultSet r = s.executeQuery("select * from  personne where nom= '"+nom+"'");
 
			    // Transformation du ResultSet en sResultSet
 
			    java.sql.ResultSetMetaData columnNames = r.getMetaData();
 
			    SResultSet.SerializedResultSet sResultSet = new SResultSet.SerializedResultSet();
 
			   for (int i = 1; i <= columnNames.getColumnCount(); i++) {
 
			    sResultSet.addColumn(columnNames.getColumnName(i), i);
 
			    }
 
			    while (r.next()) {
 
			     for (int column = 1; column <= columnNames.getColumnCount(); column++) {
 
			     sResultSet.addColumnData(column, r.getObject(column));
 
			     }
 
			    }
 
 
 
			    r.close();
 
			    s.close();
 
			    BD.close();
 
			    s = null;
 
			    r = null;
 
			    return sResultSet;
 
			   }
 
			   catch (java.sql.SQLException ex) {
 
			     System.out.println("Erreur d'exécution de la requête SQL \n"+ex);
 
			     return null;
 
			   }
 
			}
}
J'ai littéralement passé toute ma journée sur cette erreur, si vous avez un proposition je suis preneur.
Merci