Oracle APEX ORDS upgrade causing 404 error with links - oracle

Sys admins just upgraded from OHS to ORDS. I am not familiar with ORDS. I just do some Oracle APEX work. We have some links that open up .pdf files and we are getting 404 errors. We enabled the debug trace but I am not getting anywhere with this. Any ideas on what could be causing the problem?
Running: APEX Version: 19.2.0.00.18
ORDS Version: 20.4.3.r0501904
Here is the debug trace:
[TE] url-mapping start: 2023-02-07T22:40:53.255943269Z duration: 0ms
Could not find any dispatcher to handle request:
--Attributes--
oracle.dbtools.http.servlet.UriRequest = UriRequest [uri=https://www.test.com/vmdbagnt/plsql/Gate_Keeper.Get_Drawing_File/DART/CHRISORDS/J/2B945/17-JAN-2023/pg1/drawings/2B945_CHRISORDS_J.PDF, contextPath=/vmdbagnt/plsql]
oracle.dbtools.http.ecid = undX91G7JdD8dh5ZbntHtw
oracle.dbtools.common.di.Services = URL Mapped Scope
oracle.dbtools.plugin.api.di.InstanceLocator = URL Mapped Scope
--Attributes--
GET [/vmdbagnt/plsql]/Gate_Keeper.Get_Drawing_File/DART/CHRISORDS/J/2B945/17-JAN-2023/pg1/drawings/2B945_CHRISORDS_J.PDF HTTP/1.1
Host: www.test.com
host: www.test.com
connection: keep-alive
sec-ch-ua: "Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"
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/109.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.9
sec-fetch-site: same-origin
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
referer: https://www.test.com/vmdbx/f?p=DART:QUERY:11551677945868::NO:::
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cookie: _ga=GA1.2.2088229043.1633182967; _4c_=fVFNj5swFPwrK59jMMb4I7dqK7W9VHupekRgnMW7BCPbgaar%2FPc%2BJySRNlKRQH7DvPF7Mx9o6c2ItgUvy0IyWlWiUBv0bo4BbT%2BQntJ3Tp%2BDH9AW9TFOYZvny7JkYxOa7NXNedO6Q8x7%2B9oP8MaQf3%2BpX7ydG33M%2Brgf0AZp1xloL1QmMwF1%2FAsVLgmB8%2BRdd9CxjscpcRbTPoXuHX50Zrba1IvtYn9upuSO9ibdlWAiz%2FDkUwGnxY6dWz63reitTRX0LDbY2fhjHbwGcHSjAbQ1sYHqZzp6twSTpJ977%2FbmSTFAHbiDfp8VA5Te7Iz3Z9bVIBsCTia9BX03CqjBxrTkFVoR8HsF8QWcwHOUbhqcbobUASkB1%2BhoHeSF9o1NwLcv9a8fX6GmREpKFWFldsmSKi7QaYP%2BXMKlgvCKESHB%2BwhJSs5IeoDhbbemjGRHy1IUBvOWSMy0UbjlTYuZ7LTYacl3lKNVkxFVScVlxSiIzPaqQU3blkZwXDVFiZkQOyxJ2WDNWkMp75jgBN3mKiQnMBdX61yFvI41DaticScrUcKFil%2FJ7LbENK9s9rCyeFz5kmry8D99D1adTv8A; __utma=259910805.2088229043.1633182967.1651074519.1651074519.1; CFID=Zj3v2hrl7z9lq9mgcvittenrtbn7k0cm07xmisu1ajz3hpbnbe-284129; CFTOKEN=Zj3v2hrl7z9lq9mgcvittenrtbn7k0cm07xmisu1ajz3hpbnbe-59216697; LastMRH_Session=f101ed89; SBXSESSION=uz83F3fZLTbgcDGNHQtc4qT20jqtPU0/wMl+v1vN2yz7sWYmagMLVxox0KS99a3hVR4pUNbABLeTUxKGzjNTC78JZd39NoBuxMb+ED6fAKiNCfOVZJSGM2hn4CHb0X+VeSD40Pg+fqRvMiXnPcOhUA9FFixRQvHqjEbt1SOYLYy16vv0NMeUboTF0sfq5cKlwXkiPp9kTQhmgAPEzYidL9kzsXIncYf+Qc7ElNxA6VYzAiEACwIY2+yNXe6Qi6nMlUhJ6aDL44mVwrEZ/1yZ0n+TwVujlyKgJk4Mas7Hog/47cS7AyACm8aTtVP0PQskr1rCQm+1/8uutjM4JPeVQodFbX67y4z5i7iKOx1JjOAfQ0QtfF4ow8c7IYAUnp9F9KsXj9q8aCLQzEnxH3tXDK7HRbU4o9Hqxey4oxwf2weOPBX3bEkv8QreODTu3sjACxFZdtOKVNE9rhM85L8BJ+yuYuyTgbY3NX4gFITAdymjF6nVSsMi2u5VBMJd1+4OqXkhh9frb47HvWhXCylh+EM8iuY6PKRrvPmP1ujm3vt7GrOGu48AKjrWY061bVfONmQyIPU/UzfZHBwZcLvGifxe0DRbcE/4qP0FuiKke4qhZwEX46DdW6kEJVXI+tRcmbKxcOh3vhkNwFjpdpm5S0+HlmzQUQmDh0rbAV7g4Aq73IwmmrbfwMjKockLvJio8KF0NHErGPYBJbnOCPRywZDI4374GQDWCHqm7f4fMki+4P46VRWKkf8zXjXQDXnsIHHDKKwjdqfw7oZp5cgfxUwKbDV65sttaezyRQVpftDUknEBEJqxWLNTmUC260a1VuDmqx7TZKiDDWDNMqGKb7+U5Hobac/oQzgz33CHJ9C0pQqQ1kgypj7ottXr/SyVv+Mc6yBltBXcV1HLAabVzP0wwiOfpEM02iMAXScoasGaV9K5jTeje0JizQpVEWPPdUc5VmEknJRJU3otLA8ntos1Tnie71fbkIlXLEx47ZXmVCRkj7mQ/9SrSk+Q46N149hPSKVbdGMmT8Lod4OLySZK2ngyRfsRMXjoX7QpobJhEF1OUDhVxzkskrlq0Eti; F5_ST=1z1z1z1675807062z604800; iss-BigIP-sb=1543700746.42271.0000; SMSESSION=eQG4Qu3lBCY7iV2l0bZ9sQ248+0NFAckScam6d2rOfDYPBrzLo7V3AHXLDN8NBWdDO0K/bj7TMgF+poT+sYVLGcQkhD8lueg3P+wOdjMH3qj753cKKAljgENSnSCbVoY1QPjiGkvuJPWWfcFHnZw88qQVymiqGMalxdYpd1JGExp85pCQW/wL3/9bZJwRKpMWgzt4hEq7Eoe1edfcUdXbQx2bP9UtZx53YTQu7isMP2JUctCRXQDC/rU3WFiiXOqMaJMW2K/xC//9bWtf+WlmOStFg1f5vUwrZcTqT/1I5JUJzSc/MgR8JG3KYa64KcX2d7hfPxiHeKn7eFVN6oPCkK1bWFtb96z93llPF52mkPqly9XF/4/C2epvkjxetYCa/cVI/yQwXrY90yaLvqMWWjshMniLzql+oWwEJgN7kxo3p1/ERMapq/2IjWRwC9pmPhc531nOU6WzZyqo79z8snbwMElHkdzXT62y8O2KKJia5vBaE/M7MuGvUTZgDV5yOmsAqLfbO6WaCXaI803G+8CskiNG7hCkqkWfGj//yxMMYxlGjPwaAn58BzMV6hnkDUAmauip3L330Jn0yARGou10nmtQFgUjy7TADi309mI8dwFbom5f1YdP7Ps3+MbaavK4ZsNFU/Eu2pZvmF52jSHA7OaquRszOoNx4bgQhuCSBQys5XtI3pRimo7Jgl8jakWfYWtRUUr/ZZdmrwJRwZP75Onb7KtP1f02OINNHVUOehgscQikiXLtJYZvkEz/aZaZGB0+Kc5JxTfcThm1LyIXLwnmqf8U8zvISHJqTSYFZ9tfl03VzI4B5wZ302C9hb2YtyVEP0I20NXaFir8Ub3/7RV+7aPgvQiiHmF+4idx14icVcTWoIt2Omp/8a7MM7gI/ce/SNBkaN39bhpd3XP8ynC0GAHZx9/BL3Rjjum8Inh3u5NYuPfSAsmHAaF+tNvB0FjoVDx6yucrfMelwIAoYh07hfpK25aZHCd3wl8JYWnCS8BXC9mXcnL2zLqGVwZB0HqgBX8zvNimxNx7yZUh5Y3QmfwKNl7mnZkw2tcGmrK+y2r23hzJSLkIZho
x-forwarded-for: 129.50.109.4'
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: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.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:75)
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:86)
at oracle.dbtools.url.mapping.db.DatabaseTenantMapping.dispatchSelf(DatabaseTenantMapping.java:189)
at oracle.dbtools.url.mapping.db.DatabaseTenantMappingBase.doFilter(DatabaseTenantMappingBase.java:50)
at oracle.dbtools.url.mapping.defaultpool.LegacyDatabaseTenantMapping.doFilter(LegacyDatabaseTenantMapping.java:46)
at oracle.dbtools.url.mapping.tenant.TenantMappingDispatcher.dispatch(TenantMappingDispatcher.java:52)
at oracle.dbtools.url.mapping.tenant.TenantMappingFilter.doFilter(TenantMappingFilter.java:75)
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.rt.authentication.apex.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:125)
at oracle.dbtools.entrypoint.WebApplicationRequestEntryPoint.service(WebApplicationRequestEntryPoint.java:50)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at ApmCamsValve.invoke(ApmCamsValve.java:78)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)

My first answer would be... why don't you ask the sys admins instead of some strangers on a forum ? They probably followed the docs (https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/22.4/orddg/migrating-mod_plsql-ords.html)
Then... read the logs. Even if you don't know ORDS, it gives you a lot of information.
In the logs it is visible that the referrer url is "https://www.test.com/vmdbx/f?p=DART:QUERY:11551677945868::NO:::", that is your apex url, and the path is "vmdbx". But the request is to a url that looks like this "https://www.test.com/vmdbagnt/plsql/Gate_Keeper.Get_Drawing_File/DART/CHRISORDS/J/2B945/17-JAN-2023/pg1/drawings/2B945_CHRISORDS_J.PDF". In that url the path is "vmdbagnt/plsql". My guess is that this path was configured in OHC but doesn't exist yet/is named differently in ORDS
A pl/sql gateway needs to be configured in ORDS, just like it was configured in OHC. That means you'll tell ords: "if I give you this path, then connect to the database as that user and execute the procedure". This could already be done if the migration was done correctly but it might require some changes on your part because the path for the pl/sql gateway is no longer "vmdbagnt/plsql". But... only the sysadmins have that information.

Related

Unable to terminate WSO2 IS sessions

I previously had issues with WSO2 IS active-sessions-limit-handler not working. It was resolved by a previous question I asked (I upgraded to 5.11.0).
Now the issue is that when I follow this guide and setup an active-sessions-limit-handler for an SP, the server knows when I exceed the limit, but it is not able to deal with the situation correctly.
I have the max number of sessions set to 2, so when I try and login with the same user for a third time WSO2 correctly knows it is now over the limit. The issue is it gives me the following screen:
When I select any of the 3 presented options, I get an Authentication Error and the login fails. If I go to the My Account page for the user I can see that the sessions are active that are expected to be.
It seems like WSO2 is unable to retrieve the active sessions. When this error happens, I also see the following error log which appears to be that WSO2 is making a call to it's own API that is being rejected as unauthorized:
java.io.IOException: Server returned HTTP response code: 401 for URL: https://HOST:9443/api/identity/auth/v1.1/context/916aff37-aaf8-464c-bede-7f249279ff1a
Do I need to configure anything differently for the API to not return a 401? I haven't been able to find any open issues that seem to be the same problem.
EDIT, adding full stacktrace:
[2020-12-16 17:49:00,105] [4e6a703b-f19a-4d27-a80e-c2f2088f7d0e] INFO {org.wso2.carbon.identity.application.authentication.framework.config.model.graph.js.JsLogger} - USER Has one of Roles: [admin]
[2020-12-16 17:49:00,334] [2192ca86-fc09-4767-9647-ff8ec91a6698] ERROR {org.wso2.carbon.identity.application.authentication.endpoint.util.AuthContextAPIClient} - Sending GET request to URL : https://HOST:9443/api/identity/auth/v1.1/context/1bef7d0a-5aba-4e14-a7a3-a6bb53e02a62, failed. java.io.IOException: Server returned HTTP response code: 401 for URL: https://HOST:9443/api/identity/auth/v1.1/context/1bef7d0a-5aba-4e14-a7a3-a6bb53e02a62
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1924)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
at org.wso2.carbon.identity.application.authentication.endpoint.util.AuthContextAPIClient.getContextProperties(AuthContextAPIClient.java:69)
at org.apache.jsp.handle_002dmultiple_002dsessions_jsp._jspService(handle_002dmultiple_002dsessions_jsp.java:256)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter.doFilter(ContentTypeBasedCachePreventionFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.wso2.carbon.identity.application.authentication.endpoint.util.filter.AuthenticationEndpointFilter.doFilter(AuthenticationEndpointFilter.java:190)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.wso2.carbon.identity.context.rewrite.valve.TenantContextRewriteValve.invoke(TenantContextRewriteValve.java:107)
at org.wso2.carbon.identity.cors.valve.CORSValve.invoke(CORSValve.java:98)
at org.wso2.carbon.identity.authz.valve.AuthorizationValve.invoke(AuthorizationValve.java:110)
at org.wso2.carbon.identity.auth.valve.AuthenticationValve.invoke(AuthenticationValve.java:102)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:145)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
at org.wso2.carbon.tomcat.ext.valves.RequestEncodingValve.invoke(RequestEncodingValve.java:49)
at org.wso2.carbon.tomcat.ext.valves.RequestCorrelationIdValve.invoke(RequestCorrelationIdValve.java:126)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Try the scenario by uncommenting the <context-param> block with the name AuthenticationRESTEndpointURL in <IS_HOME>/repository/deployment/server/webapps/authenticationendpoint/WEB-INF/web.xml file.
<!-- *************** Authentication REST API URL Configuration ********************** -->
<context-param>
<param-name>AuthenticationRESTEndpointURL</param-name>
<param-value>https://localhost:9443/api/identity/auth/v1.1/</param-value>
</context-param>
<!-- *************** End of Authentication REST API URL Configuration ********************** -->```

parsing HTTP request parameter

I want to pass a physical path from a file server to a web service using Spring boot Rest API
the path I want to send is
E:\\sharedFile\\data
I am sending my parameter as #RequistParam like so
#PostMapping("/loadPicturesIntoDB")
public ResponseEntity<String> loadDB(#RequestParam String path) {
int size = imageService.loadDB(path);
return new ResponseEntity<String>("the database has been loaded with" + size + " files from the provided path ",
HttpStatus.OK);
}
I am getting the following error
2020-10-03 15:18:34.273 INFO 17356 --- [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target [image/loadPicturesIntoDB?path=%22E:\\sharedFile\\data%22]. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:486) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.38.jar:9.0.38]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_231]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_231]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.38.jar:9.0.38]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_231]
Thanks in advance guys
Sending URL in request parameter will be problematic as tomcat by default do not perform encoding.
I would recommend you to send this as part of Request body instead.

Spring Boot Error when redirecting to html-file

I always get a "NoSuchMethodError" in my Spring Boot application when I try to redirect to a html-file and I don't understand where this is coming from. Hope someone can help.
Background:
An external server is sending some information to my server by calling a method via url /resolce.
This method processed the information and shall deliver the information to a html-file via redirecting. The processing of the information works fine, but when it comes to the redirect I get an NoSuchMethodError. I thought the template engine can't find the view, but the configuration seems fine.
Here is the stacktrace:
Exception Processing ErrorPage[errorCode=0, location=/error]
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;
at org.apache.catalina.core.ApplicationHttpRequest.setRequest(ApplicationHttpRequest.java:708)
at org.apache.catalina.core.ApplicationHttpRequest.<init>(ApplicationHttpRequest.java:114)
at org.apache.catalina.core.ApplicationDispatcher.wrapRequest(ApplicationDispatcher.java:917)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:358)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:394)
at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:253)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:175)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
The method:
#PostMapping ( "response" )
public ModelAndView postResponse ( ..., UriComponentsBuilder ucb, HttpServletRequest request ) {
byte [ ] samlResponseAsBytes = DatatypeConverter.parseBase64Binary ( samlResponse );
...
return new ModelAndView ( "redirect:" + ucb.path ( "/delivery" ).build ( ).toString ( ) );
}
Application.properties
...
spring.thymeleaf.prefix = classpath:views/
spring.thymeleaf.suffix = .html
spring.thymeleaf.check-template-location = true
spring.thymeleaf.cache = false
spring.resources.static-locations = classpath:resources/
spring.resources.cache.period = 0
I've tried several locations for the delivery.html but as it is configured it should be under resources/views.
I can upload more informations, if neccessary.
Can someone help me please?

RFC Destination does not exist

I'm trying to configure an application running in Tomcat 8.5 with Neo Cloud SDK 3.54.23 to connect to an RFC destination and run the following code:
String destinationName = "RFCQueryEndpoint";
ErpConfigContext erpConfigContext = new ErpConfigContext(destinationName);
ErpEndpoint endpoint = new ErpEndpoint(erpConfigContext);
response.getWriter().write(new Gson().toJson(new
DefaultFinancialTransactionService().getList()
.execute(endpoint).getListOfSelectedTransactions()));
I have tried multiple ways of configuring the RFC destination, but none of them worked.
I've tried setting a destinations environment variable with:
[{name: "RFCQueryEndpoint", type: "RFC", jco.client.ashost: "host-here", jco.client.client: "100", jco.client.lang: "EN", jco.client.passwd: "pass-here", jco.client.sysnr: "01", jco.client.user: "user-here"}]
I have tried configuring the destination within the server config, as explained in https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/7fa92ffa007346f58491999361928303.html
I have tried creating a file with a .jcoDestination ending and setting the property -Djco.destinations.dir=/home/cassio/jco-destinations but none of them worked.
I'm always getting:
12:20:50.040 [http-nio-8080-exec-4] ERROR - com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: Destination RFCQueryEndpoint does not exist
12:20:50.043 [http-nio-8080-exec-4] ERROR - com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: Destination RFCQueryEndpoint does not exist
com.sap.cloud.sdk.s4hana.connectivity.rfc.exception.RemoteFunctionException: com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: Destination RFCQueryEndpoint does not exist
at com.sap.cloud.sdk.s4hana.connectivity.rfc.JCoRemoteFunctionQueryExecutor.execute(JCoRemoteFunctionQueryExecutor.java:202)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.JCoRemoteFunctionQueryExecutor.execute(JCoRemoteFunctionQueryExecutor.java:55)
at com.sap.cloud.sdk.s4hana.connectivity.rfc.BapiQuery.execute(BapiQuery.java:91)
at com.sap.cloud.sdk.s4hana.datamodel.bapi.functions.DefaultFinancialTransactionGetListFunction.execute(DefaultFinancialTransactionGetListFunction.java:469)
at MyServlet.doGet(MyServlet.java:77)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestContextServletFilter$1.execute(RequestContextServletFilter.java:219)
at com.sap.cloud.sdk.cloudplatform.servlet.Executable.call(Executable.java:23)
at com.sap.cloud.sdk.cloudplatform.servlet.Executable.call(Executable.java:13)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestContextCallable.call(RequestContextCallable.java:82)
at com.sap.cloud.sdk.cloudplatform.servlet.RequestContextServletFilter.doFilter(RequestContextServletFilter.java:221)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.sap.cloud.sdk.cloudplatform.security.servlet.HttpCachingHeaderFilter.doFilter(HttpCachingHeaderFilter.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.sap.cloud.sdk.cloudplatform.security.servlet.HttpSecurityHeadersFilter.doFilter(HttpSecurityHeadersFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.filters.RestCsrfPreventionFilter.doFilter(RestCsrfPreventionFilter.java:113)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at com.sap.cloud.runtime.impl.bridge.security.AbstractAuthenticator.invoke(AbstractAuthenticator.java:206)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve.java:182)
at com.sap.core.tenant.valve.TenantValidationValve.invoke(TenantValidationValve.java:97)
at com.sap.js.statistics.tomcat.valve.RequestTracingValve.callNextValve(RequestTracingValve.java:101)
at com.sap.js.statistics.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:57)
at com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
How can I properly configure an RFC destination locally, using SAP tools for Eclipse, to connect to an S/4 Hana On-Prem system using Neo Cloud SDK + Tomcat?
I found what I believe is a workaround.
If I simply set the destination on the server configuration in Eclipse, the SDK finds the destination name but can't find the configuration.
I had to set the destination both in the server config page, as explained here: https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/7fa92ffa007346f58491999361928303.html
And I also had to create the RFCendpoint.jcoDestination file, as follows:
Name=RFCendpoint
Type=RFC
jco.client.client=100
jco.client.lang=EN
jco.client.user=User-here
jco.client.passwd=Password-here
jco.client.ashost=Host-here
jco.client.sysnr=00
jco.destination.pool_capacity=5
jco.destination.peak_limit=10
and pass the directory the file resides in via the -Djco.destinations.dir=/home/cassio/jco-destinations flag in the arguments section of my Run configuration in Eclipse.
With both of these configs I was able to get the SDK to recgonize both the endpoint name and its configuration. Then I was able to use the service as well as call other BAPIs via BapiQuery.

Installing ORDS (without APEX)

I'm having difficulties getting ORDS 3.0.4.60.12.48 to work on a Tomcat 7.0.68 server. The database itself is Oracle 12.1.0.2.0.
Whenever I try to access the ORDS page at localhost:8080/ords, I'm getting a 404 error. After enabling the debug.printDebugToScreen property, the page is displaying the following:
Debug Trace
Could not find any dispatcher to handle request:
--Attributes--
apex.diagnostic.context = ...
ECID-Principal = ECIDPrincipal [ecid=DRfgpsk1Jpq7KZ67hEo6Dw..]
oracle.dbtools.http.ecid = ogil1RMV3372zbyEOpN1Rg..
oracle.dbtools.common.di.Services = Request Scope
--Attributes--
GET /ords/ HTTP/1.1
Host: localhost
host: localhost:8080
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-language: en-US,en;q=0.5
accept-encoding: gzip, deflate
referer: http://localhost:8080/manager/html/list
connection: keep-alive
org.apache.catalina.connector.CoyoteInputStream#139aac67
Stack Trace
DispatcherNotFoundException [statusCode=404, reasons=[]]
at oracle.dbtools.http.entrypoint.Dispatcher.choose(Dispatcher.java:86)
at oracle.dbtools.http.entrypoint.Dispatcher.dispatch(Dispatcher.java:96)
at oracle.dbtools.http.entrypoint.EntryPoint$FilteredServlet.service(EntryPoint.java:153)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:73)
at oracle.dbtools.http.forwarding.QueryFilteringRewrite.doFilter(QueryFilteringRewrite.java:89)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.forwarding.ForwardingFilter.doFilter(ForwardingFilter.java:59)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.cors.CORSPreflightFilter.doFilter(CORSPreflightFilter.java:67)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.cookies.auth.CookieSessionCSRFFilter.doFilter(CookieSessionCSRFFilter.java:73)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.auth.AuthenticationFilter.authenticate(AuthenticationFilter.java:89)
at oracle.dbtools.http.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:62)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.url.mapping.filter.URLMappingFilter.doFilter(URLMappingFilter.java:69)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.locale.LocaleFilter.doFilter(LocaleFilter.java:60)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.cors.CORSResponseFilter.doFilter(CORSResponseFilter.java:83)
at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.errors.ErrorPageFilter.doFilter(ErrorPageFilter.java:75)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.ecid.ECIDFilter.doFilter(ECIDFilter.java:35)
at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:45)
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:45)
at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)
at oracle.dbtools.http.filters.Filters.filter(Filters.java:47)
at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:82)
at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at oracle.dbtools.rt.web.HttpEndpointBase.dispatchableServices(HttpEndpointBase.java:156)
at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Unfortunately, I didn't really find a whole lot of info online about this. A lot of it was checking APEX specific users which I'm not using. Of what I did find, I already checked and can confirm that I can log in as ORDS_PUBLIC_USER manually, and I've tried copying the ojdbc.jar files from my Oracle client to the Tomcat lib folder. However, the problem seems to persist.
Any help would be appreciated!
[Edit] So I tried reinstalling it with a fresh ORDS configuration and realized that my installation did not have an apex_pu.xml file in the ords\conf\ directory. However, I'm still getting a similar error:
Debug Trace
mapped request using: /* to: apex_pu
Could not find any dispatcher to handle request:
--Attributes--
apex.diagnostic.context = ...
ECID-Principal = ECIDPrincipal [ecid=wDuKj9PEUNnl3Oy8vwesDg..]
oracle.dbtools.http.ecid = xXACfwD3YDNtXCQUNuqIAw..
oracle.dbtools.common.di.Services = Request Scope
--Attributes--
GET /ords/ HTTP/1.1
Host: localhost
host: localhost:8080
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-language: en-US,en;q=0.5
accept-encoding: gzip, deflate
referer: http://localhost:8080/manager/html/list
connection: keep-alive
org.apache.catalina.connector.CoyoteInputStream#1405a57f
mapped request using: /* to: apex_pu
Could not find any dispatcher to handle request:
--Attributes--
apex.diagnostic.context = ...
ECID-Principal = ECIDPrincipal [ecid=wDuKj9PEUNnl3Oy8vwesDg..]
oracle.dbtools.http.ecid = xXACfwD3YDNtXCQUNuqIAw..
oracle.dbtools.common.di.Services = Request Scope
--Attributes--
GET /ords/ HTTP/1.1
Host: localhost
host: localhost:8080
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-language: en-US,en;q=0.5
accept-encoding: gzip, deflate
referer: http://localhost:8080/manager/html/list
connection: keep-alive
org.apache.catalina.connector.CoyoteInputStream#1405a57f
The stack trace is near identical to before.
This was all a mistunderstanding on my part. I had assumed that localhost:8080/ords and localhost:8080/ords/ordstest should have returned some sort of metadata, but it doesn't look like that was the case.
After following the getting-started guide in the examples folder from ORDS to setting up an ORDSTEST schema and running
exec ords.enable_schema();
exec ords.enable_object(p_object => 'EMP');
commit;
in lieu of not wanting to download SQL Developer, I managed to get http://localhost:8080/ords/ordstest/emp to successfully return data.

Resources