无法在具有嵌入式 Jetty 9 的 Spring MVC 中找到 JSP 视图

Unable to find JSP views in Spring MVC with Embedded Jetty 9

我有一个 Spring MVC,将嵌入式 Jetty 从 Jetty 7 升级到 Jetty 9.3.9 和 Java 8. 我重写了嵌入式 Jetty 9 class 以支持 JSP 对于 Jetty 9 参考示例 here 和一些关于 SO 的有用问题,但是当我启动应用程序服务器时,我仍然得到

Problem accessing /webapp/WEB-INF/views/404.jsp

每当我尝试访问 http://localhost:8080/webapp/index 时,我都会收到 404 Not found,但是,从信息日志中我可以看到,webapp 正在访问我的 BaseController:

@Controller
public class BaseController{
private static final Logger logger = LoggerFactory.getLogger(BaseController.class);
@RequestMapping(value = "/index", method = RequestMethod.GET)
    public ModelAndView login(HttpServletRequest request,
            HttpServletResponse response) {

        String sessionid = request.getSession().getId();
        Map<String, String> model = new HashMap<String, Object>();
        logger.info("Requested home page...");
        model.put("Welcome Page", "Welcome to home");
        return new ModelAndView("index", model);
}

我的项目层次结构,我有两个项目。 Jetty-Startup 启动 Jetty 服务器以配置服务器属性。其他项目 - 我的所有 web.xml、servlet、控制器、JSP、JS、CSS 等所在的 webapp。

JSP 支持是否缺少某些配置?任何人都可以找出我所缺少的东西,这将非常有帮助。

提前致谢!

问题是 JSP 文件路径需要在您的 startServer() 中正确配置,如下所示:

context.addServlet(jspServletHolder(), "/WEB-INF/views/*.jsp");

我从 Spring 调试日志中意识到我有两个 servlet(appservlet 和 wsServlet)基本上映射到我 web.xml

中的相同路径

将我的 wsServlet 映射到不同的 Url 模式并且能够加载 jsp 页面。