欢迎文件列表在码头+春不工作(welcome-file-list not working in je

2019-10-21 20:37发布

我使用的码头8.1.4与3.2.4春天。 以下是我的web.xml文件。 我必须在WEB-INF index.html文件,我想,当我做到这一点页面被打http://myapp.com/或简单http://myapp.com但我得到404。如果我做HTTP ://myapp.com/index.html它的工作原理。 我不知道我错过了什么。 此外,我有点糊涂了,如果我必须使用/或/ *在下面的url-pattern,我都尝试。

<?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>

Answer 1:

码头8是EOL(寿终) ,升级到码头9(这里的答案是基于码头9如何操作设置。)

所述<welcome-file-list>是部分DefaultServlet (每servlet规范)处理。

你的声明myappname<url-pattern>/*</url-pattern>被有效地防止了DefaultServlet做任何事情。

你的配置已经基本说:“将所有请求我的DispatcherServlet”。

这甚至包括静态文件服务,欢迎文件处理,默认处理,错误处理,调度,以及更多。

至于什么URL模式进行选择,这是给你的。

有使用Spring,当前的配置在很多方面/*只是因为别人有它在为有效*.do*.dispatch/dispatch/*

你必须决定什么是最适合你的web应用,并调整自己的内部使用Spring,以满足您的需求(比如你如何声明您RequestMapping的)

现在你知道为什么<welcome-file-list>不工作,你可以进行调整,或者不使用标准的servlet <welcome-file-list> (内部使用Spring中的东西),或调整调度服务器URL模式允许servlet容器(码头),以满足您的静态文件和处理您的声明<welcome-file-list>



Answer 2:

下面我加入到我的servlet.xml中,使这项工作。 与@Joakim Erdfelt同意回答这个请求去了春天。 但不知道如何直接在网址输入index.html的工作。

<mvc:view-controller path=”/” view-name=”index” />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/" />
  <property name="suffix" value=".html" />
</bean>


Answer 3:

首先,春天的你的servlet映射配置是不正确的,它会在映射所有的事情,并链接到春天,这意味着* .JSP将弹簧来处理。 所以,你应该修复这个漏洞的配置。 但是,这样做之后,它仍然不会是正确进入欢迎页面。 这是码头的一个字符。

我必须说:有Tomcat和码头之间存在差异。 Tomcat的可以用正确的行为,但没有码头处理此。

你可以试试下面的步骤来验证通过。

  1. 删除与映射“/”
  2. 与Tomcat和码头运行应用程序。 你可以找出Tomcat和码头都的作品。
  3. 如果添加与映射模式的servlet映射:“/”,无论是与客户的servlet或弹簧调度的servlet。 它会工作在Tomcat中,但码头有权不。


Answer 4:

我想将你在一开始欢迎文件将帮助您加载file.To准确的地方。它显示标签后



文章来源: welcome-file-list not working in jetty + spring