Well, After new research, I've found that first two bytes 63 correspond to the "?" char, or 0x3f hexadecimal value, which means that magic number and version number are incorrect.
I think it comes from Jakarta, this is the only difference when I'm using the appengine... Any advice ? On Jul 9, 12:30 pm, "n...@oj" <[email protected]> wrote: > Hi folks, > > I'm working on a small application which tend to communicate with a > foreign webserver to generate specific contents. A RPC is used when > the user fire the event by clicking on a button. > > Java.net is used with URL et URLConnection. Tipically I write a > serialized string to the outputstream whereas the distant servlet read > the inputstream to reconstitute the string object. > > It works fine without the appengine, but when I want to use it, I get > this error : java.io.StreamCorruptedException: invalid stream header > > I can't understand why this exception is happening... > > Here is some code of my AskGenerationImpl class : > > URL url = new URL("http://localhost:8080/requestmanager/download"); > //URLConnection con = url.openConnection(); > HttpURLConnection con = (HttpURLConnection)url.openConnection > (); > con.setDoInput(true); > con.setDoOutput(true); > con.setUseCaches(false); > con.setDefaultUseCaches(false); > con.setRequestMethod("POST"); > con.setRequestProperty("Transfert-Coding", "chunked"); > //con.setRequestProperty("HTTP-Version", "HTTP/1.0"); > //con.setRequestProperty("Content-Encoding", "iso-8859-1"); > //con.setRequestProperty("Content-Type", "application/x-java- > serialized-object"); > /con.setRequestProperty("Content-Type","application/x-www-form- > urlencoded"); > con.setRequestProperty("Content-Encoding", "gzip"); > con.setRequestProperty("Cache-Control", "no-cache"); > con.setRequestProperty("Pragma","no-cache"); > con.setRequestProperty("User-Agent", "Java/1.5.0_19"); > //con.setRequestProperty("Connection", "keep-alive"); > con.setRequestProperty("Content-Type", "application/x-www-form- > urlencoded"); > > con.connect(); > > String s = new String("anku"); > > ObjectOutputStream oos = new ObjectOutputStream(con.getOutputStream > ()); > oos.writeObject(s); > oos.flush(); > oos.close(); > > InputStream is = con.getInputStream(); > ObjectInputStream ois = new ObjectInputStream(is); > Object o = ois.readObject(); > ois.close(); > > And here the servlet : > > try { > InputStream is = request.getInputStream(); > ObjectInputStream ois = new ObjectInputStream(is); // <<-- > Crash here > } > > I tryed to manipulate byte arrays. The content send is always the > same : -84 -19 0 5 116 0 4 97 110 107 117 (the last 4 bytes represent > the string "anku") > Without the appengine, it doesn't crash and the received byte array > is : 172 237 0 5 116 ... > With the appengine, the received byte array is : 63 63 0 5 116 ... > > Is there any clue ? Did I miss something in the encoding/content > type ? > > If someone have any idea, please let my know :) > > Thank you. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
