rmiを使用しようとしています。以下のコードは、それを使ってバインドするコードです。rmiの使用中にマーシャリングの問題
@Override
public void init(String serviceName) throws RemoteException {
/*if(System.getSecurityManager() == null){
System.setSecurityManager(new RMISecurityManager());
}*/
try {
String host = InetAddress.getLocalHost().getHostName();
String url = "rmi://"+ host + "/"+ serviceName;
//String url = "//localhost/" + serviceName;
Naming.rebind(url,this);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
私が使用するURLに関係なく、以下の例外が発生します。それはマーシャルにクラスを見つけることは決してありません。誰かがこの問題について私に助けてくれますか?前もって感謝します。
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: ceng443.hw3.base.SocialNetworkServer
サービスクラスはどのように定義されていますか? UnicastRemoteObjectを拡張していますか? – Tudor
はいそのインターフェイスを使用しています – brtb
例外はどの回線で発生しますか? – Tudor