【发布时间】:2011-12-31 17:41:01
【问题描述】:
好的,所以我有一个使用 Servlet 的非常简单的 web 应用程序,在某些情况下,我会向客户端发送错误消息,例如:
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Did not specify parameter xyz");
这通常可以正常工作,但 Tomcat(6.0.33 和 Java 1.6.0_26-b03)不显示上面的给定错误消息。
如果我在 glassfish 等其他容器上运行应用程序,则会显示给定的消息。
所以,示例输出 ....
Tomcat:
400 - Bad Request
Glassfish:
400 - Did not specify parameter xyz
是否可以将 tomcat 配置为以相同的方式运行?
【问题讨论】:
-
您的项目中是否设置了自定义错误页面?
-
否;没有自定义错误页面。它仍然显示tomcat默认的自定义HTML页面,并且我发送的消息在那里可见。 Glassfish 的行为方式相同。但它也使用该消息作为返回的基本错误消息,而 tomcat 仍然使用“错误请求”。
-
我之所以问这个问题是因为 Tomcat 6.0.X 存在一个错误,即当涉及自定义错误页面时,无法使用“sendError”发送自定义消息。
-
嗯,我没有在我的 web.xml 中指定任何内容,也没有在默认 web.xml 中看到任何内容,但我会仔细检查,感谢您指出这一点。
-
没问题。另外为了进一步参考检查这个页面...issues.apache.org/bugzilla/show_bug.cgi?id=42409