Bonjour à tous je suis un grand débutant, j'ai une applet a faire dans le thème d'un cour car étant étudiant, j'ai donc une applet qui doit chercher un nom dans ma base de donnée avec wampserver, quand je lance l'applet cela me m'est une erreur java.lang.NullPointerException je ne comprends pas voici le code de l'applet:
Code java : 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 package client; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.URL; import java.net.URLConnection; import java.util.Vector; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JTextField; import javax.swing.SwingConstants; import SResultSet.SerializedResultSet; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class AppletRecherche extends JApplet { private JTextField txtAaa; private JList listeResultat; /** * Create the applet. */ public AppletRecherche() { getContentPane().setLayout(null); JLabel lblNewLabel = new JLabel("Nom de la personne rechercher"); lblNewLabel.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent arg0) { } }); lblNewLabel.setBounds(0, 3, 225, 300); lblNewLabel.setVerticalAlignment(SwingConstants.TOP); getContentPane().add(lblNewLabel); txtAaa = new JTextField(); txtAaa.setBounds(225, 0, 225, 20); getContentPane().add(txtAaa); txtAaa.setColumns(10); JButton button = new JButton("Rechercher"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Rechercher(); } }); button.setBounds(120, 31, 116, 29); getContentPane().add(button); JList listeResultat = new JList(); listeResultat.setBounds(0, 85, 450, 215); getContentPane().add(listeResultat); } private void Rechercher() { String res; String nom=txtAaa.getText(); try { // Connexion à la servlet URL url=new URL("http://localhost:8080/ProjetServlet/requete"); 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 dentré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); // erreur d'après le débogueur 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); } } }
voici celui de ma servlet:
Code java : 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 package MesServlets; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import SResultSet.SerializedResultSet; public class ServletRequete extends HttpServlet { private DataSource ds; Connection BD; String nomPersonne; SerializedResultSet sresultat; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 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(); 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() { try { // Exécution de la requête BD=ds.getConnection(); Statement s = BD.createStatement(); ResultSet r = s.executeQuery("select * from personne where nom= '"+nomPersonne+"'"); // 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; } } public void init() throws ServletException { try { 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("base_test"); } catch(Exception er) { System.out.println("Erreur de chargement du contexte " + er); } } }
voici mon fichier web.xml au cas ou:
Code xml : 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 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Mes servlets</display-name> <description> Premi�res servlets </description> <servlet> <servlet-name>ServletBD</servlet-name> <servlet-class>MesServlets.ServletRequete</servlet-class> <description>Servlet d'essai de la connection BD</description> </servlet> <servlet-mapping> <servlet-name>ServletBD</servlet-name> <url-pattern>/requete</url-pattern> </servlet-mapping> </web-app>
et voici l'arborescence de mon projet :
mon erreur se lance quand je clique sur le bouton chercher l'erreur viendrait d'après le débogueur de la fonction rechercherje viens juste de commencer si vous pouviez m'aidez s'il vous plaît,si vous avez besoin d'info ou de fichier supplémentaire n'hésiter pas cordialement.
Code java : Sélectionner tout - Visualiser dans une fenêtre à part listeResultat.setListData(contenu);
Partager