首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ColdFusion中处理500 JRun servlet

在ColdFusion中处理500 JRun servlet
EN

Stack Overflow用户
提问于 2013-03-20 02:21:01
回答 1查看 3.2K关注 0票数 2

所有的-

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

以下是错误消息

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-20 20:31:32

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

详细信息可在此页面上找到,网址为JRun 4 Programmers Guide - Servlet Programming Techniques - Handling exceptions

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

处理HTTP错误代码

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

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

500 /error-pages/servererror.jsp

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

HTTP错误代码说明400错误请求401未经授权的403禁止的404未找到408请求超时500内部服务器错误

访问错误属性的

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

当抛出错误时,JRun会在请求对象上设置几个属性。下面描述了这些属性:

  • javax.servlet.error.status_code -如果适用,将HTTP错误代码定义为int对象。如果servlet抛出一个与HTTP无关的异常,状态码通常设置为500 (内部服务器Error).
  • javax.servlet.error.message -返回异常或错误message.
  • javax.servlet.error.exception_type -定义exception.
  • javax.servlet.error.exception的类型-定义实际抛出的异常。您可以使用printStackTrace方法查看exception.
  • javax.servlet.error.request_uri的堆栈跟踪-在抛出异常之前定义请求URI。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15507460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档