【问题标题】:Unable to find JSP views in Spring MVC with Embedded Jetty 9无法在带有嵌入式 Jetty 9 的 Spring MVC 中找到 JSP 视图
【发布时间】:2016-11-11 05:55:55
【问题描述】:

我有一个 Spring MVC,将 Embedded Jetty 从 Jetty 7 升级到 Jetty 9.3.9 和 Java 8。我重写了 Embedded Jetty 9 类以支持 Jetty 9 的 JSP 参考示例 here 和一些关于 SO 的有用问题,但是当我启动应用服务器时,我仍然得到 ​​p>

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

每当我尝试访问 http://localhost:8080/webapp/index 时,我都会收到 404 Not found,但是,从我可以看到的信息日志中,webapp 正在访问 My 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 支持的配置?任何人都可以弄清楚我缺少什么,这将非常有帮助。

提前致谢!

【问题讨论】:

  • 在访问 webapp >> src >> main >> webapp >> WEB-INF >> 视图目录中的 JSP 页面时,我得到了“404”。我的服务器在不同的项目中 - jetty-startup 。另外,在启动码头时,我看到了/webapp:main: No Spring WebApplicationInitializer types detected on classpath。不知道是不是配置错误。

标签: java jsp spring-mvc embedded-jetty jetty-9


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回复。我尝试使用 servlet 路径,不幸的是它没有帮助。我仍然得到 404。
【解决方案2】:

我从 Spring Debug 日志中意识到,我有两个 servlet(appservlet 和 wsServlet)基本上映射到我的 web.xml 中的相同路径

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

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 2016-02-22
    • 1970-01-01
    • 2017-09-20
    • 2011-08-20
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    相关资源
    最近更新 更多