я написал программу в NetBeans с RMI, что клиент имеет ошибкуClassNotFoundException с RMI
ошибка:
java.rmi.UnmarshalException: ошибка немаршалинг возврата; вложенная исключение: java.lang.ClassNotFoundException: rmiserver.Message (не менеджер безопасности: загрузчик классов RMI отключен) на sun.rmi.registry.RegistryImpl_Stub.lookup (Unknown Source)
но Север не любая ошибка!
код interfaace:
package rmiclient;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Message extends Remote {
void sayHello(String name) throws RemoteException;
}
реализация интерфейса:
package rmiserver;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class MessageImpl extends UnicastRemoteObject implements Message {
public MessageImpl() throws RemoteException {
}
@Override
public void sayHello(String name) throws RemoteException {
System.out.println("hello "+name);
}
}
код сервера:
package rmiserver;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Main {
private void startServer(){
try {
// create on port 1099
Registry registry = LocateRegistry.createRegistry(1099);
// create a new service named myMessage
registry.rebind("myMessage", new MessageImpl());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("system is ready");
}
public static void main(String[] args) {
Main main = new Main();
main.startServer();
}
}
код клиента:
package rmiclient;
import java.rmi.RMISecurityManager;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Main {
private void doTest(){
try {
// fire to localhost port 1099
Registry myRegistry = LocateRegistry.getRegistry("127.0.0.1", 1099);
// search for myMessage service
Message impl = (Message) myRegistry.lookup("myMessage");
// call server's method
impl.sayHello("edwin");
System.out.println("Message Sent");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Main main = new Main();
main.doTest();
}
}
спасибо :).
И код не компилируется. – EJP
мой код скомпилирован! BUILD SUCCESSFUL (общее время: 0 секунд). но не будет работать – sara
* Этот * код не работает. У вас есть 'Message' в пакете' rmiclient' и сервер, который реализует его в пакете 'rmiserver', и нет' import rmiclient. * 'Операторов; – EJP