2013-02-19 10 views
5

Próbuję serializować obiekt i wysłać go przez HTTP. Używam kilku tutoriali, ponieważ większość zajmuje się gniazdami, ale nie mogę używać gniazd do tego lub z plikiem przechowywanym lokalnie.Serializacja przez HTTP prawidłowego sposobu konwersji obiektu.

Oto klasa Test Pracownik:

public class Employee implements java.io.Serializable { 
     public String name; 
     public String address; 
     public transient int SSN; 
     public int number; 

     public void mailCheck() { 
      System.out.println("Mailing a check to " + name + " " + address); 
     } 

} 

Side Klient:

public class SerializeAndSend {

public static void main(String args[]){ 

     one.Employee e = new one.Employee(); 
     e.name = "Reyan Ali"; 
     e.address = "Phokka Kuan, Ambehta Peer"; 
     e.SSN = 11122333; 
     e.number = 101; 

     sendObject(e); 

} 

public static Object sendObject(Object obj) { 
    URLConnection conn = null; 
    Object reply = null; 
    try { 

     // open URL connection 
     URL url = new URL("///myURL///"); 
     conn = url.openConnection(); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 
     conn.setUseCaches(false); 
     // send object 
     ObjectOutputStream objOut = new ObjectOutputStream(conn.getOutputStream()); 
     objOut.writeObject(obj); 
     objOut.flush(); 
     objOut.close(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
    // recieve reply 
    try { 
     ObjectInputStream objIn = new ObjectInputStream(conn.getInputStream()); 
     reply = objIn.readObject(); 
     objIn.close(); 
    } catch (Exception ex) { 
     // it is ok if we get an exception here 
     // that means that there is no object being returned 
     System.out.println("No Object Returned"); 
     if (!(ex instanceof EOFException)) 
      ex.printStackTrace(); 
      System.err.println("*"); 
    } 
    return reply; 
} 

}

myślę to miód poprawne. Ale utknąłem na koniec serwera, mam klasę pracowników po stronie serwera TOO:

public void doPost (HttpServletRequest req, HttpServletResponse odp) throws IOException {

Object obj; 
ObjectInputStream objIn = new ObjectInputStream(req.getInputStream()); 

try { 
    obj = objIn.readObject(); 
} catch (ClassNotFoundException e) { 
    e.printStackTrace(); 
} 

Employee e = obj; 

}

Jak zmienić ten obiekt z powrotem w obiekt klasy pracownika?

Każda pomoc doceniona!

Odpowiedz

2

Po prostu typuj to.

Employee emp = (Employee)objIn.readObject();