Я делаю повестку дня на сервере, и все идет хорошо, я запустил реестр RMI, и сервер работал нормально, я тестирую код, и я смог войти в систему. теперь я хочу начать вводить коды в методы и вызывать их в клиенте с сервера, а когда я помещаю Naming.rebind("server", i);
на сервер, чтобы вызвать методы, код прерывается.Server breaks on Naming.rebind
Мой проект состоит из трех классов: сервера, клиента и интерфейса, который вызывает методы от сервера к клиенту. Это код сервера:
public class ServerAgendas extends UnicastRemoteObject
implements InterfaceServer {
private static final long serialVersionUID = 1L;
protected ServerAgendas() throws RemoteException {
super();
// TODO Auto-generated constructor stub
}
static String Clientusername;
static String Clientpassword;
public static void main (String args[]) throws NotBoundException,
IOException {
System.out.println("1");
try{
InterfaceServer i = new ServerAgendas();
System.out.println("2");
Naming.rebind("server",i);
System.out.println("Serveur agendas pret");
}
catch (Exception e){
System.err.println("Error "+e.getMessage());
}
ServerSocket ASocket = new ServerSocket(portNumber);
Socket connectionSocket = ASocket.accept();
}
public boolean login(String ClientUsername, String ClientPassword)
throws IOException, SQLException {
}
на стороне клиента я использую это для вызова методов:
InterfaceServer i = (InterfaceServer)Naming.lookup("server");
System.out.println(i.login(username, password));
и интерфейс содержат:
public interface InterfaceServer extends Remote{
public boolean login(String Clientusername, String Clientpassword)
throws RemoteException, IOException, SQLException;
бегает реестр сначала я запускаю сервер, консоль показывает:
1
2
Error RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: InterfaceServer
я использовал 1 и 2, чтобы увидеть, где он ломает, он ломает на:
Naming.rebind("server",i);
Что мне нужно сделать, чтобы избежать этого исключения, возникающую?
Что? Как оправдана эта близкая причина? Может ли кто-нибудь указать, где находится простая опечатка? Почему проблема не может быть воспроизведена? –
@ Duncan, может быть, вопрос _unclear_ к доводчикам, поэтому они догадались, что там была опечатка, или это так _broad_ какая-то опечатка просто должна быть там. –
@ user3181052 Не ругайтесь в своих комментариях, они будут (и были) удалены. Я не ответил, потому что не знаю ответа. Сохраняя спокойствие и учитывая, что вы можете улучшить свой вопрос, это способ справиться с этой ситуацией. –