java - 欢迎文件列表在 jetty + Spring 中不起作用

标签 java spring spring-mvc jetty web.xml

我正在使用 Jetty 8.1.4 和 Spring 3.2.4。以下是我的 web.xml 文件。我在 WEB-INF 下有一个 index.html 文件,我希望在执行 http://myapp.com/ 时点击该页面。或简单http://myapp.com但我得到了 404。如果我这样做 http://myapp.com/index.html有用。我不确定我错过了什么。另外,我有点困惑是否必须在下面的 url 模式中使用/或/*,我都尝试了。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    id="DOMAINAPPROVALGUI" version="2.4"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>myapp-ui</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/myapp-servlet.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>myappname</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>myappname</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

最佳答案

Jetty 8 is EOL (End of Life) ,升级到Jetty 9。(这里的答案是根据Jetty 9的运行方式提供的。)

<welcome-file-list>DefaultServlet 的一部分处理(根据 servlet 规范)。

您的myappname声明在<url-pattern>/*</url-pattern>有效防止 DefaultServlet不做任何事。

您的配置基本上是“将所有请求发送到我的 DispatcherServlet”。

这甚至包括静态文件服务、欢迎文件处理、默认处理、错误处理、调度等等。

至于选择哪种 url 模式,由您决定。

使用Spring的方式有很多种,你当前的配置在/**.do 中的其他人一样有效或*.dispatch/dispatch/*

您必须决定什么最适合您的网络应用程序,并调整 Spring 的内部使用以满足您的需求(例如如何声明您的 RequestMapping)

现在你知道为什么了 <welcome-file-list>不起作用,您可以进行调整以不使用标准 servlet <welcome-file-list> (在 Spring 内部使用某些内容),或者调整您的调度程序 servlet url 模式以允许 servlet 容器 (Jetty) 为您的静态文件提供服务并处理您声明的 <welcome-file-list> .

关于java - 欢迎文件列表在 jetty + Spring 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28459947/

相关文章:

java - 从 Android 应用内摄像头拍照并将其上传到服务器的更有效方法

spring - Tomcat 9 Spring MVC 应用程序 JS 文件使用 header text/html 而不是 application/javascript 下载

java - Spring Boot 单元测试 - 测试失败提示没有定义 "entityManagerFactory"bean

java - 使用java保存带有对话框的图像文件

java - 为什么我在 dato2 中看到 "null"返回我的第二个 Activity ?

java - 如何通过提供私钥来获取 RSA 公钥?

java - liquibase-插件错误 - 迁移失败

java - 无法使用 messageSource 解析 spring 消息代码

java - 如何在 MockMvc 测试期间使用正确的 Spring Security 配置

java - JPA请求问题: Validation failed for query for method public abstract java. util.List