Skip to Main Content

ORDS, SODA & JSON in the Database


For appeals, questions and feedback, please email

ORDS-22001: The procedure named apex could not be accessed or found

HolgerAug 22 2023


I have some problems accessing Apex after reinstalling ORDS.

We use:
* Apex 23.1
* ORDS 23.1 with Tomcat
* Oracle DB 19

I dropped ORDS from the database (ords --config ... uninstall --interactive) and re-installed it with:

ords --config ${ORDS_CONFIG} install \
--log-folder ${ORDS_LOGS} \
--db-pool ${DB_POOL} \
--admin-user ${ADMIN_USER} \
--db-hostname ${HOST} \
--db-port ${PORT} \
--db-servicename ${SERVICE} \
--feature-db-api false \
--feature-rest-enabled-sql false \
--feature-sdw false \
--gateway-mode proxied \
--gateway-user APEX_PUBLIC_USER

The installation was successful. Afterwards I validated the installation, which was successful, too.

But when I try to access Apex, I get:

404 The procedure named apex could not be accessed or found
ProcedureForbiddenException [statusCode=404, logLevel=INFO, errorCode=ORDS-22001: The procedure named apex could not be accessed or found Cause: The procedure may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access Action: Check the spelling of the procedure, check that the execute privilege has been granted to the caller and check the configured security.requestValidationFunction function. If using the PL/SQL Gateway Procedure Allow List, check that the procedure has been allowed via ords_admin.add_plsql_gateway_procedure]

The pool.xml contains
<entry key="security.requestValidationFunction">ords_util.authorize_plsql_gateway</entry>

The installation guide states, that You should install ORDS after Apex and the installation process would configure Apex properly. In my opinion, ORDS_METADATA.PLSQL_GATEWAY_ALLOW_LIST should be populated by the installation process.
For security reasons I'd like to keep the entry ecurity.requestValidationFunction.
What's the best approach here?

Thanks in advance.
Best Regards

This post has been answered by Holger on Sep 18 2023
Jump to Answer
Post Details
Added on Aug 22 2023