【问题标题】:Debugging JSF + PrimeFaces applications调试 JSF + PrimeFaces 应用程序
【发布时间】:2012-04-04 01:12:50
【问题描述】:

有没有一种方法可以通过查看一个日志文件来调试 JSF + PrimeFaces 应用程序?更具体地说,如果某些事情没有按预期工作,我个人目前是这样做的:

  1. 在网页上寻找视觉指示器(例如,如果我收到 HTTP 500 显然有问题)
  2. 我在我的应用服务器的日志文件中查找任何警告、错误或堆栈跟踪
  3. 我在 Firebug 的网络控制台中查看 HTTP 响应中是否有任何错误;这往往会不时发生(并且不会显示在日志中!)
  4. 我通过在表单中​​包含 p:message 并显示它来检查它是否是验证错误。

对我来说,检查错误是一个 4 步工作流程。有没有更好的方法来做到这一点?理想情况下,如果所有这些错误都可以记录到单个日志中,那就太好了。这是 DIY 还是有一些标准的方法?

谢谢!

【问题讨论】:

  • JSF/PrimeFaces 确实吞下了 ajax 请求的异常。当项目阶段设置为Development 时,只有 Mojarra 会显示一个简单的警报。 PrimeFaces 完全忽略了它。但是,您可以使用异常处理程序让它们完整显示默认错误页面。另请参阅full ajax exception handler

标签: java jsf-2 primefaces


【解决方案1】:

没有什么可以为您提供您所描述的内容,因为这些都是发生在不同层次上的情况。

  1. 这通常是因为未处理的异常进入调用堆栈。如果您改进了异常处理代码,那么应该捕获并记录这些情况。

  2. 在所有应用程序层改进的异常处理和日志记录将有助于在应用程序服务器上的单个日志文件中捕获所有错误和异常。

  3. Firebug 捕获异步回发中的网络错误以及 Javascript 异常。这完全是客户端的问题,因为服务器只是派生标记。有可能在它们传播到 Firebug 之前捕获所有 Javascript 异常,并将异步错误报告发送到服务器以供服务器记录。这应该不会太难实现。

  4. 同样,更好地登录验证器方法将能够将此信息放入应用程序服务器日志中,以便您将所有这些信息集中在一个地方。

最重要的是,对于那些学习如何在其应用程序中直观地包含良好的 Instrumentation 代码的开发人员来说,这些情况都不是问题。

【讨论】:

    【解决方案2】:

    您好,我也在使用 jsf 和 primefgaces 开发一个应用程序。我之前也遇到过这个问题。现在我使用 log4j 将所有错误/异常/疑问记录到一个文件中。用起来也很简单,你可以看看,说不定能解决你的问题。

    【讨论】:

      【解决方案3】:

      还有<p:log />可以让你使用PrimeFaces调试。

      见:http://www.primefaces.org/showcase/ui/misc/log.xhtml

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-08
        • 1970-01-01
        • 1970-01-01
        • 2015-06-27
        • 2023-04-04
        • 1970-01-01
        • 2013-01-19
        • 1970-01-01
        相关资源
        最近更新 更多