URL encoding problems with Apache Tomcat/Oracle Apex Listener
gsutphenFeb 22 2012 — edited Feb 28 2012Software Versions
Operating System:Red Hat Enterprise Linux Server release 5.7 (Tikanga) 2.6.18 274.17.1.el5 (64-bit)
Oracle 11GR2 EE
Application Express 4.1
Apex Listener 1.1.3
Apache 2.2
Tomcat 7 with mod_proxy_ajp listening on 8009
Architect
Following advance configuration for Apex Listener using SSL on external server only
Browser – https: 443 | DMZ | – Tomcat/Apex Listener: 8080 which calls the database on another server. This is a production database so they can only get to an apex application by calling the application alias.
Following the advance configuration and using Apache Tomcat for the Apex Listener and calling the application with mod_proxy_ajp. I have a problem with URL encoding when my external server HTTP server calls the internal Apache Tomcat server. The reverseproxy call converts f?p= to f%3Fp= as you can see in the portion of the log I have included below. We are using this statement to call the Apex application:
ProxyPass /vop_reports ajp://internal.lab.server.gov/apex/f?p=vop_rep
ProxyPassReverse /vop_reports ajp://internal.lab.server.gov/apex/f?p=vop_rep
This is what the internal server is getting in the logs
external.lab.server.gov - - [16/Feb/2012:12:19:48 -0600] "GET /apex/f%3Fp=vop_rep HTTP/1.1" 400 -
external.lab.server.gov - - [16/Feb/2012:12:19:57 -0600] "GET /apex/f%3Fp=vop_rep HTTP/1.1" 400 -
This is my problem no matter if I use standalone Apex Listener or Tomcat setup:
f?p= gets converted to --> f%3Fp=
I followed the recommendations from previous posting when they had problems with special characters but that has not helped in this case.
How can I resolve this problem? Oracle Support was not knowledgeable on the advanced configuration.