자바서버와 안드로이드 클라이언트가 소켓으로 서로 연결된 상태에서, ObjectInputStream 및 ObjectOutputStream을


이용해 내가 만든 Header라는 클래스의 객체를 보내고 받을 생각이었는데 위와 같은 에러가 발생했다.


에러내용을 보면 안드로이드 클라이언트가 보낸 Header라는 객체를 자바서버의 ObjectInputStream의 readObject 


메서드가 읽는 과정에서 객체를 제대로 인식하지 못하는 것 같다.



해결방법은 간단하다.


ObjectInputStream 및 ObjectOutputStream으로 서로 주고 받으려는 클래스가 위치한 패키지 이름이 서버와 클라이


언트에서 서로 같은지를 확인해보자.


나의 경우 안드로이드 클라이언트에서는 com.example.pmbs_client 패키지 내에 Header 클래스가 위치해 있었고,


자바서버에서는 server 패키지 내에 Header 클래스가 위치해 있었다.


그래서 서버와 클라이언트 모두 각각 shared 라는 패키지를 별도로 만들고 그 안에 Header 클래스를 넣어 두니 문제


가 해결되었다.



p.s) 참고로 ObjectInputStream 및 ObjectOutputStream으로 객체를 보내고자 할때 해당 클래스는 Serializable을 구


현해야 한다. 나의 경우 serialVersionUID 멤버변수는 없어도 문제가 일어나지 않았다.








Posted by huammmm1
,