Environment:
ords 23.1 (latest version)
Tomcat 9.74 running on linux (java jdk version oracle-jdk-11.0.17)
Oracle 19c with 2 pluggable containers. APEX and ords installed in pluggable database pdb1 (not CBD)
APEX 22.2
Problem: Unable to run APEX developer app. Error "Could not find any dispatcher to handle request:"
Problem Details.
This is a new install completely, not an upgrade. A new Oracle 19c instance has been created, into which ords 23.1.1 was installed using the interactive command line option on the webserver (and APEX 22.2 installed from the database server). Upgraded to 23.1.2 to see if any bug fixes might have helped. ords is running in tomcat 9 on a linux webserver that is front ended by an F5 appliance.
When running in https mode in tomcat (using url https://xxxxx.lexisnexis.com/ords/ - which is a dns mapping to port 8445 ) or in http standalone mode (using url http://dvcnnnn.lexisnexis.com:8080/ords/ ), the initial get/post to load application 4500 just doesn't seem to happen, the error below occurs.
The full error message is at the end of the post. The http standalone console output is also at the end of the post.
The APEX and ords installs have both been verified (using the standard Oracle sql scripts). apex_rest_config was run successfully with no errors
Error 404
Debug Trace
[TE] url-mapping start: 2023-05-02T08:00:15.181350631Z duration: 0ms
Could not find any dispatcher to handle request:
Stack Trace
DispatcherNotFoundException [statusCode=404, logLevel=FINER, reasons=[]]
In tomcat there are no errors in any of the catalina log/txt log files.
Ords config files:-
pool.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Saved on Wed May 03 14:23:48 UTC 2023</comment>
<entry key="db.connectionType">basic</entry>
<entry key="db.hostname">cpdbnnnnn.lexisnexis.com</entry>
<entry key="db.port">1521</entry>
<entry key="db.servicename">PDBFIN1_SERVICE.ISPTEST.LEXISNEXIS.COM</entry>
<entry key="db.username">ORDS_PUBLIC_USER</entry>
<entry key="feature.sdw">true</entry>
<entry key="restEnabledSql.active">true</entry>
<entry key="security.requestValidationFunction">ords_util.authorize_plsql_gateway</entry>
</properties>
settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Saved on Wed May 03 14:23:48 UTC 2023</comment>
<entry key="database.api.enabled">true</entry>
<entry key="standalone.context.path">/ords</entry>
<entry key="standalone.doc.root">/opt/ordsconfig/ords23.1/global/doc_root</entry>
<entry key="standalone.https.cert">/opt/ordsconfig/keystore/dvc4423.der</entry>
<entry key="standalone.https.host">test-gfa.lexisnexis.com</entry>
<entry key="standalone.https.cert.key">/opt/ordsconfig/keystore/dvc4423-key.der</entry>
<entry key="standalone.https.port">8445</entry>
<entry key="standalone.static.context.path">/i</entry>
<entry key="standalone.static.path">/opt/tomcat/webapps/i/</entry>
<entry key="debug.debugger">true</entry>
<entry key="debug.printDebugToScreen">true</entry>
</properties>
I have rest enabled the dept table in a schema in the new database. The url http://dvcnnnn.lexisnexis.com:8080/ords/fin/dept/ will successfully return the contents of the dept table in both http standalone mode and https with tomcat. So ords is able to connect to the database, just can't get APEX to startup.
Any ideas?
Thanks
Paul
Full error log
Error 404
Debug Trace
[TE] url-mapping start: 2023-05-02T08:00:15.181350631Z duration: 0ms
Could not find any dispatcher to handle request:
--Attributes--
org.apache.tomcat.util.net.secure_protocol_version = TLSv1.2
javax.servlet.request.key_size = 128
oracle.dbtools.http.servlet.UriRequest = UriRequest [uri=https://test-gfa.lexisnexis.com/ords/dvpdb1/, contextPath=/ords/dvpdb1]
org.apache.tomcat.util.net.secure_requested_protocol_versions = TLSv1.2
org.apache.tomcat.util.net.secure_requested_ciphers = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,Unknown(0x00ff)
oracle.dbtools.http.ecid = ro6ve1jSwPQFlfeUTgCvpA
javax.servlet.request.ssl_session_mgr = org.apache.tomcat.util.net.jsse.JSSESupport@54d1a20f
javax.servlet.request.cipher_suite = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
javax.servlet.request.ssl_session_id = a664a581ca649a5f7b1541b1dd8de96d83210834a8ea4c9f7e69f9ee07ce8da2
oracle.dbtools.common.di.Services = URL Mapped Scope
oracle.dbtools.plugin.api.di.InstanceLocator = URL Mapped Scope
--Attributes--
GET [/ords/dvpdb1]/ HTTP/1.1
Host: test-gfa.lexisnexis.com
host: test-gfa.lexisnexis.com
connection: keep-alive
sec-ch-ua: "Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
sec-fetch-site: none
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cookie: AMCV_FE6E472E5909B11F0A495C1E%40AdobeOrg=-6__.1; WA_ANONCOOKIE=0k__34; opVisitorId=VH__NZ; _gcl_au=1.__91; _fbp=fb__02; da_lid=BD__|0; _ga=GA__41; _uetvid=81__12; _ce.s=v~__79; __utma=10__.7; __utmz=10__=/; _ga_H1BZPG4PCB=GS__.0
x-re-ref: 1 1683014414546110
x-re-feproxy: russpf-bec-lvlna.telecom.regn.net
x-re-clienthttpreqversion: 1.1
x-forwarded-for-chain: nnn.29.102.56
x-forwarded-for: nnn.29.102.56
x-re-clienthttps: ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 256
front-end-https: on
client_cipher: ECDHE-RSA-AES256-GCM-SHA384
client_cipher_version: TLSv1.2
client_cipher_strength: 256
orighttpreqversion: 1.1
red-path: /ords/dvpdb1/
red-remote-addr: nnn.29.102.56
red-remote-host: nnn.29.102.56
Stack Trace
DispatcherNotFoundException [statusCode=404, logLevel=FINER, reasons=[]]
at oracle.dbtools.http.entrypoint.Dispatcher.choose(Dispatcher.java:78)
at oracle.dbtools.http.entrypoint.Dispatcher.dispatch(Dispatcher.java:89)
at oracle.dbtools.http.entrypoint.EntryPoint$FilteredServlet.service(EntryPoint.java:170)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at oracle.dbtools.http.forwarding.QueryFilteringRewrite.doFilter(QueryFilteringRewrite.java:90)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.forwarding.ForwardingFilter.doFilter(ForwardingFilter.java:69)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.cors.CORSPreflightFilter.doFilter(CORSPreflightFilter.java:68)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.cookies.auth.CookieSessionCSRFFilter.doFilter(CookieSessionCSRFFilter.java:71)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.auth.AuthenticationFilter.authenticate(AuthenticationFilter.java:101)
at oracle.dbtools.http.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:64)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.url.mapping.RequestMapperImpl.doFilter(RequestMapperImpl.java:158)
at oracle.dbtools.url.mapping.URLMappingBase.doFilter(URLMappingBase.java:89)
at oracle.dbtools.url.mapping.db.DatabaseTenantMapping.dispatchSelf(DatabaseTenantMapping.java:212)
at oracle.dbtools.url.mapping.db.DatabaseTenantMappingBase.doFilter(DatabaseTenantMappingBase.java:51)
at oracle.dbtools.url.mapping.tenant.TenantMappingDispatcher.dispatch(TenantMappingDispatcher.java:56)
at oracle.dbtools.jdbc.pools.local.DefaultLocalTenantMapping.dispatchSelf(DefaultLocalTenantMapping.java:132)
at oracle.dbtools.url.mapping.db.DatabaseTenantMappingBase.doFilter(DatabaseTenantMappingBase.java:51)
at oracle.dbtools.jdbc.pools.local.DefaultLocalTenantMapping.doFilter(DefaultLocalTenantMapping.java:100)
at oracle.dbtools.url.mapping.tenant.TenantMappingDispatcher.dispatch(TenantMappingDispatcher.java:56)
at oracle.dbtools.url.mapping.tenant.TenantMappingFilter.doFilter(TenantMappingFilter.java:84)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.forwarding.ForwardingFailedFilter.doFilter(ForwardingFailedFilter.java:41)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.auth.external.ExternalSessionFilter.doFilter(ExternalSessionFilter.java:59)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.apex.support.auth.ApexSessionQueryRewriteFilter.doFilter(ApexSessionQueryRewriteFilter.java:58)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.cors.CORSResponseFilter.doFilter(CORSResponseFilter.java:90)
at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.filters.AbsoluteLocationFilter.doFilter(AbsoluteLocationFilter.java:65)
at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.auth.external.ExternalAccessValidationFilter.doFilter(ExternalAccessValidationFilter.java:59)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.errors.ErrorPageFilter.doFilter(ErrorPageFilter.java:87)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.secure.ForceHttpsFilter.doFilter(ForceHttpsFilter.java:74)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.auth.ForceAuthFilter.doFilter(ForceAuthFilter.java:44)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.filters.Filters.filter(Filters.java:67)
at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:70)
at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:130)
at oracle.dbtools.entrypoint.WebApplicationRequestEntryPoint.service(WebApplicationRequestEntryPoint.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1544)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:192)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:933)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1077)
at java.base/java.lang.Thread.run(Thread.java:834)