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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача объекта, Нужна помощь 
:(
    Опции темы
eXcile
Дата 27.2.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Возникла следующая проблема:

На клиенте создается объект, -> пересылается на сервер [JBoss]. Для примера сервер немного модифицирует данные и отправляет обратно клиенту. Проблема в том, что на клиенте данных не видно

Код сервлета:
Код

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class test extends HttpServlet{
    private String mystr;
    private ObjectInputStream get_data;
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        
            
        get_data = new ObjectInputStream(request.getInputStream());
        
        data[] m_data=new data[50];
        data[] c_data=new data[50];
        try{
             m_data = (data[]) get_data.readObject();
        }
        catch(ClassNotFoundException e){};
        
        int i;
        String aaa,bbb;
        for (i=1;i<50;i++){
            aaa=m_data[i].get_name();
        
            out.println(aaa);
            c_data[i]=new data("answer_form_server"+aaa,m_data[i].get_id()+10);
        }
        
        ObjectOutputStream oos;
        oos=new ObjectOutputStream(response.getOutputStream());
        oos.writeObject(c_data);
        
        
    }
    
    public void doPut(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        doGet(request,response);
    }
}

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;
    }
}



Код апплета [клиент]:
Код

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

public class post extends Applet{
    private URL murl;
    private URLConnection myurl;
    
        
    public void init(){
        int i;
        data[] n1 = new data[50];
        Random r = new Random();
        
        ObjectOutputStream out;
                
        
        
        TextArea ta= new TextArea();
        add(ta);
        TextArea ta1=new TextArea();
        add(ta1);
        String aaa;
        
        
        for(i=1;i<50;i++){
            
            n1[i] = new data ("client #- "+String.valueOf(i)+"  id =  ",r.nextInt());
            aaa=n1[i].get_name();
            System.out.println(aaa);
            ta.append("\n");
            ta.append(aaa);
            
            aaa=String.valueOf(n1[i].m_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);
        }catch(IOException e){}
                  
        try{
         myurl.connect();
        }catch(IOException e){}
        
        try{
                
                out=new ObjectOutputStream(myurl.getOutputStream());
                out.writeObject(n1);
                
                //ByteArrayInputStream is =new ByteArrayInputStream(baos);                
                                            
                out.flush();
                out.close();
        }
        catch(Exception e){};
           
        
         /* try{
         
         BufferedReader bis = new BufferedReader(new InputStreamReader(myurl.getInputStream()));
         
         ta1.setEditable(false);
         
         char[] buffer=new char[4096];
         int byte_read;
         
         try{
         while((byte_read = bis.read(buffer))!=-1){
             String zzz=new String(buffer,0,byte_read);
             ta1.append(zzz);
         }
         }catch(IOException e){}
       }catch(IOException e){}*/
        
    
}
    
    
    public void start(){
        
        TextArea ta2=new TextArea();
        add(ta2);
        data[] n2=new data[50];
        int i;
        String zz;
        
        try{
            murl = new URL("http://localhost:8080/test/hello");
        }catch(MalformedURLException e){}
        
        try{
            myurl=murl.openConnection();
            myurl.setDoInput(true);
            myurl.setDoOutput(true);
        }catch(IOException e){}
                  
        try{
         myurl.connect();
        }catch(IOException e){}
        
        
        try{
            
            ObjectInputStream in=new ObjectInputStream(myurl.getInputStream());
            n2=(data[])in.readObject();
            
            for(i=1;i<50;i++){
                zz=n2[i].get_name();
                ta2.append(zz);
                ta2.append("\n");
                zz=String.valueOf(n2[i].get_id());
                ta2.append(zz);
                ta2.append("\n");
            }
            
            
            
            in.close();
    }
    catch(Exception e){};
    }
}

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;
    }
}




По идее, на клиенте в TextArea - ta2 должен отобразится ответ сервера, но ничего нет...

Это сообщение отредактировал(а) eXcile - 27.2.2007, 12:21
--------------------
Не становитесь рабом шаблона [Винсент Ван Гог]
PM MAIL   Вверх
tux
Дата 27.2.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Почему бы в 
Код

catch(IOException e){}

вместо 
Код

{} 

не написать хотя бы 
Код

{e.printStackTrace()}

? Может тогда хоть что-то станет понятно? Как вообще собираешься определять где ошибка вылезла? Методом научного тыка?

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

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

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


 




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


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

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