Avatar billede jally72 Nybegynder
02. juni 2003 - 10:17 Der er 4 kommentarer

servletConnection.getOutputStream()

Hei prøver å kommunisere mellom applet og servlet vha Object Serialization. På appleten har jeg følgene metode:

///////////////////////////////////////////////////////////
private String sendToServer(Map map) {
// connection
      URL url = null;
      URLConnection servletConnection = null;
      try {
        url = new URL(getCodeBase(),
                      "http://localhost:8083/servlet");
//Åpner connection til server
        servletConnection = url.openConnection();
      }
      catch (IOException ex2) {
      }

//Klargjør for både input og output og slår av cashen
      servletConnection.setDoInput(true);
      servletConnection.setDoOutput(true);
      servletConnection.setUseCaches(false);
      servletConnection.setDefaultUseCaches(false);

//Setter opp at det er binary data
      servletConnection.setRequestProperty("Content-Type",
                                          "application/oct                                              et-stream");

//Henter input og output streams til serveren
      InputStream in = null;
      try {
        in = servletConnection.getInputStream();
      }
      catch (IOException ex3) {
      }
      OutputStream out = null;
      try {
        out = servletConnection.getOutputStream();
      }
      catch (IOException ex) {
      }

//Data til servlet
      DataIn data_in = new DataIn();

//Lager en outputstream og skriver objectet til  streamen
      try {
        ObjectOutputStream oos = new ObjectOutputStream    (out);
        oos.writeObject(data_in);
        oos.flush();
        oos.close();
        ObjectInputStream ois = new ObjectInputStream(in);
        DataOut data_out = (DataOut) ois.readObject();
      }
      catch (ClassNotFoundException ex1) {
      }
      catch (IOException ex1) {
  }
///////////////////////////////////////////////////////////
/////I servleten under post metoden:::

          try {
            InputStream in = request.getInputStream();
            ObjectInputStream ois = new ObjectInputStream(in);

//Leser serialiserbart object
            DataIn data_in = (DataIn) ois.readObject();
            in.close();
            DataOut data_out = new DataOut();
            response.setContentType("java-internal/" +  DataOut.class.getName());
            OutputStream out = response.getOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(out);
            oos.writeObject(data_out);
            oos.flush();
            oos.close();
          }
          catch (IOException ex5) {
          }
          catch (ClassNotFoundException ex5) {
          }
///////////////////////////////////////////////////////////

Når jeg kjører appleten så returnerer følgende linje null:

out = servletConnection.getOutputStream();

Er det noen som vet hvorfor?? Må jeg initialisere noe på servleten for å få det til å virke????
Avatar billede arne_v Ekspert
02. juni 2003 - 20:06 #1
Prøv med:

//Åpner connection til server
        servletConnection = url.openConnection();
      }
      catch (IOException ex2) {
      }

//Klargjør for både input og output og slår av cashen
      servletConnection.setDoInput(true);
      servletConnection.setDoOutput(true);
      servletConnection.setUseCaches(false);
      servletConnection.setDefaultUseCaches(false);

//Setter opp at det er binary data
      servletConnection.setRequestProperty("Content-Type",
                                          "application/octet-stream");

      servletConnection.connect(); // <------------------------------------

//Henter input og output streams til serveren
      InputStream in = null;
      try {
        in = servletConnection.getInputStream();
      }
      catch (IOException ex3) {
      }
      OutputStream out = null;
      try {
        out = servletConnection.getOutputStream();
      }
      catch (IOException ex) {
      }
Avatar billede arne_v Ekspert
12. juni 2003 - 22:53 #2
Har du prøvet ?
Avatar billede jally72 Nybegynder
13. juni 2003 - 08:55 #3
Hei, helt glem at jeg hadde dette spørsmålet her inne. Løste det selv med å gjøre meg ferdig med output streamen før jeg brukte inputstreamen. Leste en plass at av og til så taklet ikkje java at man 'brukte' begge paralellt.
Avatar billede arne_v Ekspert
24. juni 2003 - 21:03 #4
Så svar selv på spørgsmålet og accepter svaret, så spørgsmålet kan
blive lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester