It would really help customers if the jdk 1.3 RMI specification is clarified
further about HTTP tunnelling and how RMI works in conjunction with
firewalls:
http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmi-arch6.html
The following info from the RMI specification needs updating:
> 3.5.3 Configuring the Client
>
> There is no special configuration necessary to enable the client to send
> RMI calls through a firewall.
>
> The client can, however, disable the packaging of RMI calls as HTTP
> requests by setting the java.rmi.server.disableHttp property to equal
> the boolean value true.
Please add info that for HTTP-tunneling to work one needs to use a HTTP proxy.
Also we need to mention that one needs to set HTTP proxy host and HTTP proxy
port properties explicitly, to the client VM to indicate existence of the
local HTTP proxy (and the proxy's port). It does not hurt to give an
example and mention the exact HTTP proxy property names,
$ java -Dhttp.proxyHost=webcache.ebay -Dhttp.proxyPort=8080 .... RMIclient
Please state whether -Dhttp.proxySet=yes must also be specified. It would
immensely help to list all the relevant properties with their default values,
and state their purpose, in a tabular fashion.
Please state that there is no way to avoid the direct TCP connection attempt.
That is, even if user knows there's a firewall that will deny the direct
connection, and client is started with -Dhttp.proxyHost and -Dhttp.proxyPort,
the direct connection is still attempted, and only when it times out is the HTTP
tunneling attempted.