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.
javassist.tools.rmi.AppletServer , javassist.tools.rmi.RemoteException , javassist.tools.web.Viewer
| Modifier and Type | Field and Description |
|---|---|
| private final byte[] | |
| protected byte[] | |
| private int | |
| private String | |
| private int | |
| private static final Class | |
| protected byte[] | |
| private static final long | serialVersionUID
default serialVersionUID |
| private String |
| Access | Constructor and Description |
|---|---|
| public | ObjectImporter(java.
the applet loaded from the appletWebserver.Constructs an object importer. |
| public |
| Modifier and Type | Method and Description |
|---|---|
| public Object | |
| private Object | |
| public Object | |
| public Object | Returns: the proxy object.the name of the exported object. name)Finds the object exported by the server with the specified name. |
| public void | |
| private void | |
| private void |
| endofline | back to summary |
|---|---|
| private final byte[] endofline | |
| lookupCommand | back to summary |
|---|---|
| protected byte[] lookupCommand | |
| orgPort | back to summary |
|---|---|
| private int orgPort | |
| orgServername | back to summary |
|---|---|
| private String orgServername | |
| port | back to summary |
|---|---|
| private int port | |
| proxyConstructorParamTypes | back to summary |
|---|---|
| private static final Class<?>[] proxyConstructorParamTypes | |
| rmiCommand | back to summary |
|---|---|
| protected byte[] rmiCommand | |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID default serialVersionUID | |
| servername | back to summary |
|---|---|
| private String servername | |
| ObjectImporter | back to summary |
|---|---|
| public ObjectImporter(java. Constructs an object importer. Remote objects are imported from the web server that the given applet has been loaded from.
| |
| ObjectImporter | back to summary |
|---|---|
| public ObjectImporter(String servername, int port) Constructs an object importer. If you run a program with Viewer v = (Viewer)this.getClass().getClassLoader(); ObjectImporter oi = new ObjectImporter(v.getServer(), v.getPort());
| |
| call | back to summary |
|---|---|
| public Object call(int objectid, int methodid, Object[] args) throws RemoteException Calls a method on a remote object. It sends a POST request to the server (via an http proxy server if needed). This method is called by only proxy objects. | |
| createProxy | back to summary |
|---|---|
| private Object createProxy(int oid, String classname) throws Exception | |
| getObject | back to summary |
|---|---|
| public Object getObject(String name) Finds the object exported by a server with the specified name. If the object is not found, this method returns null. | |
| lookupObject | back to summary |
|---|---|
| public Object lookupObject(String name) throws ObjectNotFoundException Finds the object exported by the server with the specified name. It sends a POST request to the server (via an http proxy server if needed). | |
| setHttpProxy | back to summary |
|---|---|
| public void setHttpProxy(String host, int port) Sets an http proxy server. After this method is called, the object importer connects a server through the http proxy server. | |
| skipHeader | back to summary |
|---|---|
| private void skipHeader(InputStream in) throws IOException | |
| writeParameters | back to summary |
|---|---|
| private void writeParameters(ObjectOutputStream dout, Object[] params) throws IOException | |