A fragment of JConsole documentation (bold type emphasis added by me):
The com.sun.management.jmxremote.port management property specifies the port where the RMI Registry can be reached but the ports where the RMIServer andRMIConnection remote objects are exported is chosen by the RMI stack. To export the remote objects (RMIServer and RMIConnection) on a given port you need to create your own RMI connector server programmatically, as described in the section
Mimicking Out-of-the-Box Management Using the JMX Remote API in the Java SE Monitoring and Management Guide.
I actually need to write code to be able to monitor a Java application through a firewall! Talk about an unfinished product! and Sun guys even have the nerve to act surprised angry when people say that Java is over-engineered.