2010-10-04 113 views
7

我的设置:Apache的2.2 + Tomcat的6.0 @的Windows 2008 R2 64位空页,而不是自定义Tomcat的错误页面

  • 静态网页:/
  • 的servlet:/富
  • 的Tomcat和Apache由连接MOD_JK
  • 404.jsp被放置在Tomcat的\的webapps \ ROOT

的Tomcat \ CONF \ web.xml中:

<error-page> 
<error-code>404</error-code> 
<location>/404.jsp</location> 
</error-page> 

的apache \的conf \额外\的httpd-ssl.conf中:

JkMount /foo/* worker1 
JkMount /404.jsp worker1 

当我打开https://...../404.jsp显示我的自定义错误页。 但是当我打开https://...../foo/nonexisting.html时,会显示一个空白页面。

如果我从web.xml中删除<error-page>...</error-page>代码并打开https://...../foo/nonexisting.html,那么将显示tomcats自己的404。

任何提示?

回答

1

就我所见,webapps的错误不能通过放置在ROOT中的错误页面来处理。我现在将404.jsp放在每个webapp(/foo/404.jsp,/bar/404.jsp,...)中,现在它工作。我可以安全地删除ROOT中的404.jsp,但是如果我在/ foo或/ bar中删除了404.jsp,那么如果在任一webapp中出现404,则会提供空白页。 tomcat会忽略“位置”元素中的前导/,或者将此元素的内容添加到“调用”webapp的路径中。

-1

其显示404页尚未找到或其他? 因为其他一些错误代码也可用400,401,403,500。 看看这个链接 http://docs.yahoo.com/docs/writeus/error.html

如果你有任何其他在web.xml文件中添加错误代码。 希望这有助于。 快乐编码...

+0

以下行?你必须误解我的问题 – Alexander 2010-12-03 11:17:44

0

注意:您需要确保您指定的页面不以数字开头(即:404.jsp)。这是因为根据Java语法,您不能用数字来启动类名称。

http://www.jguru.com/faq/view.jsp?EID=492774

。希望:-)

+0

为404.jsp一个_404_jsp.java生成编译为_404_jsp.class这是调用没有麻烦,所以这不可能是原因 – Alexander 2011-01-10 09:03:38

0

如果它工作正常,有助于装载404.jsp时,并显示一个空白页面当Tomcat实际上是尝试使用页面来处理一个404错误,它可能意味着404.jsp的源代码中只有使用errorData对象才会触发错误。

检查日志。我有一个类似的空白页问题,事实证明,我有一个incorrect taglib URL

EDIT

另外,由于Tomcat是已经产生这些404 JkMount不应是必要的(即,它们不是在Apache的范围)。

+0

感谢JkMount提示! – Alexander 2011-01-17 13:45:13

0

我也遇到了这个问题,事实证明罪魁祸首是我将应用程序上下文根的名称输入到错误页面位置。也就是说,

<error-page> 
<error-code>404</error-code> 
<location>/MyApp/404.jsp</location> 
</error-page> 

而它当然应该已经

<error-page> 
<error-code>404</error-code> 
<location>/404.jsp</location> 
</error-page> 
+0

前几天我回答自己:位置被追加到webapps的路径中,所以当404/web应用中出现路径/ foo时,会提供/ foo/{位置},因此似乎无法指定“全球“错误页面 – Alexander 2011-01-21 09:18:58

2

的Jkmount应该有上下文参数,例如:

JkMount /mycontext/* worker1 

那么页面访问是这样的:

https://mycontext/someservlet/ 

https://mycontext/foo/nonexisting.html 
0

我在运行一个静态web项目时遇到了这个问题。我已经完成了下面的实现,它已经为我工作了。

添加在%CATALINA_HOME%/ CONF/web.xml中

<error-page> 
    <error-code>404</error-code> 
    <location>/error_404.html</location> 
    </error-page>