在 Oracle APEX 中的应用程序开发过程中,我开始从APEX引擎中获得非常奇怪的404 (Not Found)
例外。
有时APEX会针对不同的操作回复404 (Not Found)
。我可以获得这些例外的点可能有所不同:
关于这一切的最奇怪的事情是这个异常只连续发生一次。例如,如果我按一个按钮提交页面,我第一次得到例外,当我第二次按下按钮时,一切正常。
如何使用100%概率重现该例程的一个例子 - 我有一个页面上有几个交互式报告。每个交互式报告都有一个链接列来编辑行。当用户单击该链接时,会出现一个带有表单的模态窗口,然后他们应该单击“保存”按钮。所以重现错误的步骤:
Save
。在浏览器javascript控制台中,我看到以下内容:
POST http://<my_ip_address>/apex/wwv_flow.ajax 404 (Not found)
XHR failed loading: POST "http://<my_ip_address>/apex/wwv_flow.ajax".
此外,我打开了a discussion on OTN关于我提供其他信息的主题。
答案 0 :(得分:0)
使用试错法,找到了错误的原因。
似乎错误与基于LOV
(值列表)的项目或报告列相关。并且只有当这些LOV
基于流水线函数返回大量行时(假设一百个以上)。
这就是:
LOV
的项目(基于数据库流水线功能)。例如,几个Popup LOV
个项目。 User1设置了一些值并按下了提交按钮。APEX accept process
接收请求,尝试从LOV获取行,但不需要所有这些行,据我所知,尝试关闭游标。ORA-06548: no more rows needed
。这绝对是合法的行为。404 (Not Found)
。 APEX show process
包装此异常并将其返回给User1。 User1看到我上面显示的一张图片。因此,解决方案是抑制由LOV组件中使用的流水线函数生成的任何异常。在这样做之后,一切都开始运作良好。
我认为它是 Oracle APEX错误,原因有三个 - 对流水线功能的反应不充分,响应中生成的错误对于开发人员和用户来说都是不透明的,甚至在任何地方都没有正确记录