Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Problem's with ObjectOutputStream 
:(
    Опции темы
eXcile
Дата 2.3.2007, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 8.2.2007

Репутация: нет
Всего: 5



Hi!

Есть проблема при передаче объекта.

Сервлет:
Код

package buzzy;


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import buzzy.data;

public class test extends HttpServlet{
    public String mystr;
    private ObjectInputStream get_data;
    data[] n2=new data[1];
    
            
    
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        
        OutputStream outstr = response.getOutputStream(); 
        ObjectOutputStream oos = new ObjectOutputStream(outstr);

          try { 
                  response.setContentType("application/x-java-serialized-object"); 

                  InputStream in = request.getInputStream(); 
                  ObjectInputStream inputFromApplet = new ObjectInputStream(in); 
                  
                  n2 = (data[]) inputFromApplet.readObject(); 
                  oos.writeObject(n2); 

          } catch (Exception e) { 
                  e.printStackTrace(); 
          } 
          oos.flush(); 
          oos.close(); 
          doGet(request,response);
  } 

}



Код


package buzzy;

import java.io.*;

class data implements Serializable{
    String m_name;
    int m_id;
    public data(String name,int id){
        m_name=name;
        m_id=id;
    }
    public String get_name(){
        return m_name;
    }
    public int get_id(){
        return m_id;
    }
}


Клиент
Код

package sirius;

import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;

import sirius.data;

public class connect extends Applet{
    private URL murl;
    private URLConnection myurl;
    private TextArea ta2;
    data[] n1 = new data[1];
    
    public void init(){
        int i;
        
        Random r = new Random();
        
        String aaa;
        
        
        TextArea ta= new TextArea();
        add(ta);
        TextArea ta1=new TextArea();
        add(ta1);
        TextArea ta2=new TextArea();
        add(ta2);
            
        
            n1[0] = new data ("client #- "+String.valueOf(1)+"  id =  ",r.nextInt());
            aaa=n1[0].get_name();
            System.out.println(aaa);
            ta.append(aaa);
            ta.append("\n");
            aaa=String.valueOf(n1[0].get_id());
            System.out.println(aaa);
            ta.append(aaa);
            ta.append("\n");
        
        
        try{
            murl = new URL("http://localhost:8080/test/hello");
        }catch(MalformedURLException e){}
        
        try{
            myurl=murl.openConnection();
            myurl.setDoInput(true);
            myurl.setDoOutput(true);
            myurl.setUseCaches(false);
            myurl.setRequestProperty("Content-Type","application/x-java-serialized-object" );
            myurl.connect();
        }catch(IOException e){}
           
       try { 
            String input; 

            //input="This is packed in jbject";
            OutputStream outstream = myurl.getOutputStream(); 
            ObjectOutputStream oos = new ObjectOutputStream(outstream);
            oos.writeObject(n1); 
            oos.flush(); 
            oos.close(); 

            InputStream instr = myurl.getInputStream(); 
            ObjectInputStream inputFromServlet = new ObjectInputStream(instr); 
            n1 = (data[]) inputFromServlet.readObject(); 
            inputFromServlet.close(); 
            instr.close(); 

            ta2.append(n2.get_name); 

    } catch (Exception ex) { 
            ex.printStackTrace(); 
            //exceptionArea.setText(ex.toString()); 
    }   
}       
}


Класс data в клиенте такой же как и в сервлете

Возникают следующие исключения:

java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2552)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at sirius.connect.init(connect.java:75)
    at sun.applet.AppletPanel.run(AppletPanel.java:417)
    at java.lang.Thread.run(Thread.java:619)

В чем может быть проблема? (: если вместо класса передавать строку, то все работает нормально

web.xml:
<?xml version="1.0" encoding="UTF-8"?>

<web-app>
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>buzzy.test</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>

</web-app>


Это сообщение отредактировал(а) eXcile - 2.3.2007, 06:51
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0633 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.