在 ColdFusion 中处理 500 个 JRun servlet [英] Handling 500 JRun servlet in ColdFusion

查看:18
本文介绍了在 ColdFusion 中处理 500 个 JRun servlet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

全部 -

有没有办法在 ColdFusion 中处理 500 JRun servlet 错误?我尝试使用 cferror 以及在 ColdFusion 管理员中使用站点范围的处理程序,但它似乎不起作用.

Is there a way to handle a 500 JRun servlet error in ColdFusion? I tried using cferror as well as using the site-wide handler in ColdFusion admin, but it does not seem to be working.

这是错误信息

500

ROOT CAUSE:  java.lang.IllegalArgumentException     at
coldfusion.filter.FormScope.parseName(FormScope.java:408)   at
coldfusion.filter.FormScope.parseQueryString(FormScope.java:360)    at
coldfusion.filter.FormScope.parsePostData(FormScope.java:328)   at
coldfusion.filter.FormScope.fillForm(FormScope.java:278)    at
coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:438)   at 
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33)   at
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at
coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)  at 
coldfusion.CfmServlet.service(CfmServlet.java:200)  at
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:86)  at
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)  at
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)  at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:94)  at
jrun.servlet.FilterChain.service(FilterChain.java:101)  at
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)     at
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)  at
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)   at
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)   at
jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)    at
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)   at 
jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)


javax.servlet.ServletException: ROOT CAUSE: 
java.lang.IllegalArgumentException  at
coldfusion.filter.FormScope.parseName(FormScope.java:408)   at
coldfusion.filter.FormScope.parseQueryString(FormScope.java:360)    at
coldfusion.filter.FormScope.parsePostData(FormScope.java:328)   at
coldfusion.filter.FormScope.fillForm(FormScope.java:278)    at
coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:438)   at 
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33)   at
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at
coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)  at 
coldfusion.CfmServlet.service(CfmServlet.java:200)  at
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:86)  at
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)  at
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)  at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:94)  at
jrun.servlet.FilterChain.service(FilterChain.java:101)  at
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)     at
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)  at
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)   at
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)   at
jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)    at
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)   at 
jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)  at
coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70)  at
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)  at 
jrun.servlet.FilterChain.doFilter(FilterChain.java:94)  at
jrun.servlet.FilterChain.service(FilterChain.java:101)  at
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)     at
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)  at
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)   at
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)   at
jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)    at
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)   at 
jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

推荐答案

您收到的错误发生在 JRun 级别.这种类型的错误发生在 ColdFusion 错误处理程序可以捕获它之前.您将需要在 JRun 级别创建并分配一个错误处理程序.这可以通过编辑 web.xml 文件来完成.(进行更改后,您需要重新启动 JRun 服务器.)

The error that you are receiving is occurring at the JRun level. This type of error occurs before the ColdFusion error handler can trap it. You will need to create and assign an error handler at the JRun level. This can be accomplished by editing the web.xml file. (After making changes you will need to restart the JRun server.)

详细信息可以在此页面上找到,JRun 4 程序员指南 - Servlet 编程技术- 处理异常.

Details can be found on this page, JRun 4 Programmers Guide - Servlet Programming Techniques - Handling exceptions.

您可以使用 WEB-INF/web.xml 文件中的 error-page 元素定义 Web 应用程序如何处理错误.您还可以通过将 error-page 元素添加到 SERVER-INF/default-web.xml 文件来为 JRun 服务器上的所有 Web 应用程序定义错误处理.

You can define how a web application handles errors using the error-page element in the WEB-INF/web.xml file. You can also define error handling for all web applications on the JRun server by adding error-page elements to the SERVER-INF/default-web.xml file.

处理 HTTP 错误代码

web.xml 文件中 error-pageerror-code 子元素定义了 JRun 如何处理 servlet 处理过程中生成的 HTTP 错误代码.

The error-code subelement of error-page in the web.xml file defines how JRun handles HTTP error codes generated during the processing of a servlet.

您为 error-code 元素定义 HTTP 状态代码,然后将该代码映射到 location 元素中的目的地.以下示例将 HTTP 500(内部服务器错误)状态代码映射到 servererror.jsp 页面:

You define an HTTP status code for the error-code element and then map the code to a destination in the location element. The following example maps the HTTP 500 (Internal Server Error) status code to the servererror.jsp page:

<error-page>
    <error-code>500</error-code>
    <location>/error-pages/servererror.jsp</location>
</error-page>

下表列出了常见的与错误相关的 HTTP 状态码:

The following table lists common error-related HTTP status codes:

HTTP error code    Description
  400              Bad Request
  401              Unauthorized
  403              Forbidden
  404              Not Found
  408              Request Time-out
  500              Internal Server Error

访问错误属性

HttpServletRequestHttpServletResponse 对象提供对错误信息的访问,以便您可以生成有意义的调试信息或有针对性的异常处理程序.有关更多信息和示例,请参阅我上面包含的链接.

The HttpServletRequest and HttpServletResponse objects provide access to error information so that you can generate meaningful debugging information or targeted exception handlers. For more information and examples, see the link that I included above.

当抛出错误时,JRun 会在请求对象上设置几个属性.下面对这些属性进行说明:

JRun sets several attributes on the request object when an error is thrown. The following describes these attributes:

  • javax.servlet.error.status_code - 将 HTTP 错误代码(如果适用)定义为 int 对象.如果 servlet 抛出与 HTTP 无关的异常,则状态码通常设置为 500(内部服务器错误).
  • javax.servlet.error.message - 返回异常或错误消息.
  • javax.servlet.error.exception_type - 定义异常的类型.
  • javax.servlet.error.exception - 定义实际抛出的异常.您可以使用 printStackTrace 方法查看异常的堆栈跟踪.
  • javax.servlet.error.request_uri - 在抛出异常之前定义请求 URI.
  • javax.servlet.error.status_code - Defines the HTTP error code, if applicable, as an int object. If the servlet throws an exception not related to HTTP, the status code is usually set to 500 (Internal Server Error).
  • javax.servlet.error.message - Returns the exception or error message.
  • javax.servlet.error.exception_type - Defines the type of exception.
  • javax.servlet.error.exception - Defines the actual exception thrown. You can use the printStackTrace method to view the stack trace of the exception.
  • javax.servlet.error.request_uri - Defines the request URI prior to the exception being thrown.

这篇关于在 ColdFusion 中处理 500 个 JRun servlet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆