有的时候,我们访问 orbeon form 自带的 demo 页面时,比如 url:http://localhost:8080/orbeon/fr/orbeon/controls/new
会遇到错误消息:
403 错误:
日志文件位置:
https://stackoverflow.com/questions/15402931/unauthorized-orbeon-form-error
当您收到意外行为(例如 Form Builder 的错误消息或运行表单时)时,您通常可以在 Orbeon Forms 日志文件(通常称为 orbeon.log)中找到有关出错原因的更多信息。 要检查此日志:
找到您的 orbeon.log 所在的位置。 开箱即用,它写在 ../logs/orbeon.log 中,相对于您启动 servlet 容器或应用程序服务器时的当前目录。 例如,如果您从 bin 目录启动 Tomcat,则日志文件将位于 Tomcat 的日志目录中。 如果您找不到 orbeon.log,或者希望在其他位置创建它,请在 Orbeon Forms 中编辑 WEB-INF/resouces/config/log4j.xml,找到 SingleFileAppender,然后在 <param name= "File" value="../logs/orbeon.log"/> 将 ../logs/orbeon.log 替换为您希望存储 orbeon.log 的位置。 使用绝对路径,例如 /opt/tomcat/logs/orbeon.log 通常是个好主意。
一些日志片段分析:
2021-12-18 10:18:12,169 INFO ProcessorService - Context listener - Context initialized.
2021-12-18 10:18:12,192 INFO form-runner-auth - initializing
2021-12-18 10:18:12,196 INFO form-runner-auth - configuring: FilterSettings(None)
2021-12-18 10:18:12,200 INFO limiter - initializing
这个 context listener 一看就是 Java 的东西。
ContextListener 类是实例化 ApplicationContext 对象的默认上下文侦听器类。 在 web.xml 中注册这个类,以便在 JSP/Java Servlet 应用程序启动时调用它。
2021-12-18 10:18:19,491 INFO ProcessorService - Servlet initialized.
servlet 是在 Web 服务器中运行的小型 Java 程序。 Servlet 接收和响应来自 Web 客户端的请求,通常是通过 HTTP(超文本传输协议)。 Servlet 处理从客户端到服务方法的任何调用。
2021-12-18 10:18:19,532 INFO lifecycle - event: {"request": "1", "source": "limiter", "message": "start: chain", "path": "/fr/orbeon/controls/new", "method": "GET", "wait": "0"}
这说明客户端发起了一个打开新建数据 form 的 GET 请求。
2021-12-18 10:18:19,572 INFO ProcessorService - Session listener - Session created.
当会话对象更改时,会通知 HttpSessionEvent。 这个事件对应的监听器接口是HttpSessionListener。 我们可以在此事件中执行一些操作,例如统计总数和当前登录用户,维护登录时间、注销时间等用户详细信息的日志。
2021-12-18 10:18:19,625 INFO lifecycle - event: {"request": "1", "session": "FF9852F8D7883C80F1F8D8ADA1231ADC", "source": "service", "message": "start: handle"}
产生第一个 session,以 ADC 结束。
2021-12-18 10:18:19,625 INFO ProcessorService - /fr/orbeon/controls/new - Received request
2021-12-18 10:18:21,810 INFO lifecycle - event: {"request": "2", "session": "FF9852F8D7883C80F1F8D8ADA1231ADC", "source": "service", "message": "start: handle", "path": "/fr/service/persistence/crud/orbeon/controls/form/form.xhtml", "method": "GET"}
读取 orbeon/controls/form 下的 form.xhtml 文件。
更多Jerry的原创文章,尽在:"汪子熙":