글쓴이 :조중현 2000년 5월 10일 09:03:15
다음은 원격 객체의 메쏘드를 호출하는 객체(클라이언트)의 소스입니다. 컴파일을 되고 실행시 다음과 같은 에러가 생깁니다. 어떻게
import java.rmi.Naming;
import java.sql.*;
public class DBClient {
public static void main(String args[]) throws Exception {
if (args.length != 1)
throw new IllegalArgumentException("Syntax : DBClient <host name>");
RemoteDBServer server = (RemoteDBServer)Naming.lookup("rmi://"+args[0]+"/DBServer");
// 원격객체 함수
// 리턴 타임 : ResultSet
ResultSet rset= server.getData();
while (rset.next ()) {
System.out.println (rset.getString (1));
}
}
}
=> 에러는 아마도 ResultSet 을 Serializable 없다는 내용인 듯 어떻게 해야죠
C:\JavaExe>java DBClient localhost
Exception in thread "main" java.rmi.UnmarshalException: error unmarshalling retu
rn; nested exception is:
java.io.WriteAbortedException: Writing aborted by exception; java.io.Not
SerializableException: oracle.jdbc.driver.OracleResultSet
java.io.WriteAbortedException: Writing aborted by exception; java.io.NotSerializ
ableException: oracle.jdbc.driver.OracleResultSet
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:429)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
at DBServer_Stub.getData(DBServer_Stub.java:34)
at DBClient.main(DBClient.java, Compiled Code)
C:\JavaExe>