NullPointerException on the RMI server side.
java.lang.NullPointerException
at com.sun.net.ssl.internal.ssl.SSLSessionContextImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.invalidate(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA12275)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:442)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:534)
[890 byte] By [
chendcha] at [2007-10-3 4:01:37]

My situation is as below:
on the RMI client side, there is a callback class exported in its constructor and then as a argument invoke the remote method of the server side. The remote class is retrivied from the registry.
CallBack cb = new CallBack();
MyRemoteObj ojb = Registry.lookup("MyRemoteObj");
obj. action('' test", cb);
on the RMI server side:
1. create a registry using LocateRegistry.createRegistry(port , MyRMISSLClientSocketFactory,MyRMISSLServerSocketFactory)
2.bind my remote object in the registry.
When I run my client, and find clent successfully done. But the server raised above problem.
That exeception from a separate thread that I can't catch it.
Do anyone know why? Thanks in advance.
Thanks ejp,
The Constructor of the class CallBack is:
abstract Class CallBack {
CallBack(
UnicastRemoteObject.exportObject(this, port, new MyRMISSLClientSocketFactory(),
new MyRMISSLServerSocketFactory());
)
public Object invoke(String str,Object data) throws RemoteException;
}
all the callback sub class will extend this class and implements the special invoke method.
client didn't create any registry, just
Registry registry=LocateRegistry.getRegistry(iHost, iPort,
nw MyRMISSLSocketFactory());
and use this registry to get remote object by name( A string like "MyRemoteObj" which bind in server side);
Do you anything want to know?