Bonjour.
Voilà mon problème :
Je tente de faire communiquer une applet et une servlet. Après quelques recherches sur le net, je suis parvenu à transférer une chaîne de caractères. Cependant, je désirerais transférer une image.
Je sais que les images ne sont pas sérialisables. J'ai donc effectué un pixelgrabber. (J'ai trouvé une explication sur le net).
Maintenant, je me trouve face à une erreur :
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2435)
...
Voici le code que j'utilise dans mon applet :
public void rec (Image imaret) throws IOException
{
immod=imaret;
try
{
URL url = new URL("http://monadresseip:8080/examples/servlet/enreg");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
ObjectOutputStream out3 = new ObjectOutputStream(con.getOutputStream());
if ( con instanceof HttpURLConnection && ((HttpURLConnection)con).getResponseCode () / 100 == 4) throw new IOException ();
System.out.println("Connection OK!");
int i = ((HttpURLConnection)con).getResponseCode();
System.out.println(i);
PixelGrabber grabber = new PixelGrabber(immod, 0,0, -1, -1, true);
try
{
grabber.grabPixels();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
Object pix = grabber.getPixels();
Dimension dim = new Dimension(((BufferedImage)immod).getWidth(),((BufferedImage)immod).getHeight());
out3.writeObject(dim);
//out3.writeObject(pix);
out3.flush();
out3.close();
BufferedReader entrée = new BufferedReader(new InputStreamReader(con.getInputStream()));
String message = entrée.readLine();
System.out.println("truc : "+message);
}
catch(IOException e) {System.out.println("problème à l'ouverture de la connexion sur l'URL ");}
}
Et le code de ma servlet :
public class enreg extends HttpServlet implements Serializable
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
ObjectInputStream in = new ObjectInputStream(request.getInputStream());
String ok = "Connection ok";
PrintWriter sortie = response.getWriter();
sortie.println("Connection effective");
System.out.println("REUSSI!");
Dimension dim = (Dimension)in.readObject();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
J'ai simplifié le code ici car de toute façon, ça bloque au niveau du in.readObject()... Apparemment, le flux que j'essaie de transmettre est vide...
Si quelqu'un a une idée pour résoudre mon problème, je suis preneur.
Merci d'avance!
Fanou28.
pour fanou28 tu me rends un grand service si tu me dis comment faire pour faire une servlet qui intégre une applet pack j'ai troiuvé dans le net.svp c urgent
[Modéré par Didier]
Ajout de tag dans le titre
Lire les règles du forum : Règles du forum Java
Partager