我的WEB-INF文件夹包含4个文件和1个目录:
drwxr-xr-x 238B Aug 18 16:53 .
drwxr-xr-x 136B Aug 14 13:23 ..
-rw-r--r-- 302B Aug 14 13:23 applicationContext.xml
-rw-r--r-- 302B Aug 14 13:23 dispatcher-servlet.xml
-rw-r--r-- 1.1K Aug 18 16:53 spring-mvc-demo-servlet.xml
drwxr-xr-x 102B Aug 18 16:52 view
-rw-r--r-- 2.2K Aug 18 16:53 web.xml
Maven配置为构建war包。这是pom.xml的一部分:
...
<packaging>war</packaging>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>webapp\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
</plugins>
</build>
...
但是当我打包上传到Tomcat的代码时:
mvn clean compile war:exploded
只有文件夹中的web.xml文件:
$ pwd
spring-learning/target/1.0-SNAPSHOT/WEB-INF
$ ls -alh
total 8
drwxr-xr-x 170B Aug 18 17:08 .
drwxr-xr-x 136B Aug 18 17:08 ..
drwxr-xr-x 170B Aug 18 17:08 classes
drwxr-xr-x 340B Aug 18 17:08 lib
-rw-r--r-- 2.2K Aug 18 16:53 web.xml
我从udemy课程中获取了该web.xml,它包含对这些额外的.xml文件的引用,这些文件当然无法在Tomcat上加载。
的web.xml:
...
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc-demo-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...
答案 0 :(得分:0)
经过10个多小时的绝望谷歌搜索后,我终于注意到pom.xml文件中有Windows类型的反斜杠。请注意从Internet复制路径字符串!