So, I see that HTTP tunneling over RMI has been removed in Java 9.
We sell commercial Java software that runs on Tomcat. Our customers install this on their Mac, Windows, and Linux servers. This software then gets public access, with the Java Swing client interface. It uses RMI to communicate with the server software.
Most of our clients have firewalls that prevent access to the server on any port other than 80/443. This is not a problem for Java 8 and earlier, which can use RMI through dynamic ports or switch to HTTP when a firewall blocks access.
However, removing the HTTP proxy function in Java 9 means that most of our clients will no longer be able to use our software, as is currently in the archive. It is impractical and unsafe for our clients to configure their firewalls and servers for SSH access from the public, especially for clients running Windows servers.
Does this mean that we need to rewrite our application architecture to use a network protocol other than RMI? Or is there a way to save RMI in Java 9? Ditching RMI will completely require a complete rewrite of our user-oriented application code and is not a cost-effective option.