Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Передача объекта


Автор: eXcile 27.2.2007, 12:19
Возникла следующая проблема:

На клиенте создается объект, -> пересылается на сервер [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 должен отобразится ответ сервера, но ничего нет...

Автор: tux 27.2.2007, 13:09
Почему бы в 
Код

catch(IOException e){}

вместо 
Код

{} 

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

{e.printStackTrace()}

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)