我在WebSphere Liberty Profile中运行我的应用程序。我的应用程序的URL如下:
http://myhostname:1234/Foo
当用户请求任何未知页面时,我可以自定义war的web.xml中的错误页面。
http://myhostname:1234/Foo/whatever_page
但是我无法在用户输入我的Foo上下文根之前自定义404错误,例如。
http://myhostname:1234/whatever_here
我见过一些教程建议在Http Web Server中执行此操作,但不幸的是,这对我来说不是一个选项。此外,由于某种原因,我无法将root上下文(myhostname:1234 /)用于我的应用程序。
请告知我如何才能使用应用程序服务器实现此目的。
答案 0 :(得分:0)
我不确定您是否打算做什么,因为您声明的限制是可能的。上下文根是该特定应用程序的入口点,因此您无法在web.xml中指定任何内容,因为它已封装在应用程序中。
我只是看着当你对一个坏的上下文根执行HTTP GET请求时自由返回的响应有效负载,我的猜测是它返回在Java文件中某处生成的html,这让我相信这不会是可以覆盖的。
您最简单的选择可能是您在原帖中所说的两个。
编辑:
看来tomcat具有您所寻求的功能:
http://davidghedini.blogspot.com/2010/10/tomcat-custom-404-page.html
我尝试了一下,如果你输入了一个糟糕的上下文根,它就可以了。 Tomcat有一个ROOT文件夹,因为它以这种方式实现,它能够处理你想要覆盖的案例。如果你想在自由上做这个,你可以使用/作为上下文根来制作另一个.war并在那里处理你的404,因为这是apache所做的(基本上模仿tomcat的ROOT文件夹中的内容)。唯一的区别是tomcat似乎为你提供了“开箱即用”的ROOT,而在自由中,你需要自己生成它。