1 pièce(s) jointe(s)
problème applet erreur java.lang.NullPointerException
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:
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:
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:
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 :
Pièce jointe 157818
mon erreur se lance quand je clique sur le bouton chercher l'erreur viendrait d'après le débogueur de la fonction rechercher
Code:
listeResultat.setListData(contenu);
je 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.