I have ORDS 2.10 running on Tomcat 7.0.59 with JDK 1.7.0_75
The ORDS app is deployed as the ROOT application and this is fronted by an Apache reverse proxy. This servers up three APEX databases at version 4.0, 4.2, and 5.0 with multiple applications in multiple workspaces.
Everything is working just fine until a REST request in the 5.0 database which gives a 404 Not Found. In particular this is happening to plugins for an application that has been upgraded from 4.2 to 5.0. The plugin requests are REST requests in 5.0 now and not wwv_flow_file_mgr procedure calls as is 4.2 (I am not an APEX programmer, so someone correct me if I am wrong here with all this).
The plugin REST request logging the following with Tomcat:
"GET /ygsids/ygsids/r/111/files/plugin/28138660856261613766/v1/com_skillbuilders_sbdp_save_value_on_cascade.min.js HTTP/1.1" 404 3850
The following is the url-mapping.xml for this instance of ORDS:
<?xml version="1.0" encoding="UTF-8"?>
<pool-config xmlns="http://xmlns.oracle.com/apex/pool-config">
....
<pool base-path="/ygsids" name="ygs50t" workspace-id="ygsids"/>
....
</pool-config>
If I create a test workspace and test the RESTful service for employee in the sample, I get the same problem.
....
<pool base-path="/dan" name="ygs50t" workspace-id="dan"/>
....
Log entry:
"GET /dan/dan/hr/employees/ HTTP/1.1" 404 3850
Both of these calls will work if I remove the prefix. ie: /dan/hr/employees/ will work. But that is how APEX build the request URI.
What also works is if I remove the workspace-id from the url-mapping entry:
....
<pool base-path="/dan" name="ygs50t"/>
....
The same paths above that were 404 are now found.
I thought the purpose of the workspace-id was to let ORDS know what workpsace to scan for REST services? Seeing as how all Prefix Paths for workspaces in a database must be unique within the database, what is it's purpose?
Am I missing something here by not having the workspace-id in the url-mapping?