最近,我们将应用程序从JBoss 6.4迁移到了7,这是我们对Undertow Web容器的首次体验。我们的EAR解决方案在'/'上部署了一个Web应用程序,该应用程序从块构建请求的页面。块主要基于JSP,它们位于不同的Web应用程序(具有不同的上下文)中,并包含在呈现框架中。
我们注意到,就 HttpServletRequest.getContextPath()而言,6.4和7之间存在差异。 6.4 Web容器返回包含JSP的Web应用程序的上下文(我会说是上下文继承的一种),而undertow返回拥有JSP的Web应用程序的上下文。我不确定,但是上下文似乎是从第一个Web应用程序继承的。
说实话,我无法判断哪个解决方案更接近规范,但是第一个解决方案似乎更合逻辑,不是吗?难道是Undertow中的错误?
目前,我们仅了解到 c:url 由于它更改了结果的事实,但是我们可以通过将'/'上下文显式传递给标记来解决此问题。不过,如果有人能向我解释其背后的动机,我将不胜感激。