Java RMI Servlet
When directly connecting to RMI servers is not allowed, the web server must respond to requests for /cgi-bin/java-rmi.cgi to make the forwarding of HTTP requests possible. An actual CGI file is provided in the Java SE Development Kit (JDK). The Java RMI specification expects this file to be added to the web server cgi-bin directory. By setting wt.rmi.javarmicgi to another URI, the CGI file can exist anywhere, for example /servlet/JavaRMIServlet.
To improve performance, security, and flexibility, Windchill delivers a servlet that can be mapped to the same URL. The servlet class is wt.tools.javarmi.JavaRMIServlet. This class adds security as it can be configured through servlet initialization parameters that forward connections to a predefined range of destination port numbers. However, the java-rmi.cgi file provided in the JDK allows the HTTP request to identify any port number on the local host, opening other services to potential attack.
To improve performance, wt.tools.javarmi.JavaRMIServlet does not start a new process for each RMI call. To add flexibility, it allows itself to be configured to forward requests to a nonlocal RMI server host, thereby acting as an RMI proxy server. The servlet parameters are:
• serverHost
• minPort
• maxPort
The values for minPort and maxPort are automatically calculated based on the wt.properties configuration for the method server RMI ports.