Ich hab da mal das übliche Hello World in RMI geschrieben. Nur dass ich da einLaufzeitfehler bekomme. in der Linie reg.rebind("hallo", stub);
bekomme ich volgende Fehlermeldung:
ServerErr:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassCastException: java.i
bjectStreamClass cannot be cast to java.lang.String
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at HalloRMI.HalloServer.main(HalloServer.java:31)
Caused by: java.lang.ClassCastException: java.i
bjectStreamClass cannot be cast to java.lang.String
Ich verstehe diese Meldung nicht ganz... wo liegt das problem?[/code]
Code:
package HalloRMI;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
public class HalloServer implements Hallo {
private static final long serialVersionUID = 1L;
private String serverHalloString = "";
public HalloServer(){
serverHalloString = "Hello World!";
}
public HalloServer(String srvStr){
serverHalloString = srvStr;
}
public String getServerHallo() throws RemoteException {
return serverHalloString;
}
public void setClientHallo(String cHallo) throws RemoteException {
System.out.println("Client says: " + cHallo);
}
public static void main(String[] args){
try{
HalloServer srv = new HalloServer("Welcome to Neptun");
Hallo stub = (Hallo) UnicastRemoteObject.exportObject(srv, 0);
Registry reg = LocateRegistry.getRegistry();
reg.rebind("hallo", stub);
System.err.println("Halloserver online and bounded");
}
catch(Exception e){
System.err.println("ServerErr: ");
e.printStackTrace();
}
}
}
bekomme ich volgende Fehlermeldung:
ServerErr:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassCastException: java.i
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at HalloRMI.HalloServer.main(HalloServer.java:31)
Caused by: java.lang.ClassCastException: java.i
Ich verstehe diese Meldung nicht ganz... wo liegt das problem?[/code]