Webserver
(the main class of this package). To access the remote object, the applet first calls lookupObject()
and obtains a proxy object, which is a reference to that object. The class name of the proxy object is identical to that of the remote object. The proxy object provides the same set of methods as the remote object. If one of the methods is invoked on the proxy object, the invocation is delegated to the remote object. From the viewpoint of the applet, therefore, the two objects are identical. The applet can access the object on the server with the regular Java syntax without concern about the actual location.
The methods remotely called by the applet must be public
. This is true even if the applet's class and the remote object's classs belong to the same package.
If class X is a class of remote objects, a subclass of X must be also a class of remote objects. On the other hand, this restriction is not applied to the superclass of X. The class X does not have to contain a constructor taking no arguments.
The parameters to a remote method is passed in the call-by-value manner. Thus all the parameter classes must implement java.io.Serializable
. However, if the parameter is the proxy object, the reference to the remote object instead of a copy of the object is passed to the method.
Because of the limitations of the current implementation,
C
is of the remote object, then the applet cannot instantiate C
locally or remotely. All the exceptions thrown by the remote object are converted into RemoteException
. Since this exception is a subclass of RuntimeException
, the caller method does not need to catch the exception. However, good programs should catch the RuntimeException
.
@see javassist.tools.rmi.AppletServer
@see javassist.tools.rmi.RemoteException
@see javassist.tools.web.Viewer
|
|
|
|