作者lueichun (no anonymous)
看板java
标题[问题] 进入专案起始页出现404
时间Sat Sep 1 11:29:48 2018
我在专案内使用DispatherServlet做为分配请求的工具,web.xml的写法是:
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
然後Controller是:
@Controller
public class EmployeeController {
@RequestMapping(path="/", method=RequestMethod.GET)
public String goHome(){
return "index1";
}
}
在spring.xml设定要扫描注解:
<context:component-scan base-package="com.example" />
<mvc:annotation-driven/>
而
专案名称是TestProject。
看起来只要在浏览器输入:localhost:8080/TestProject/
即可进入index1.jsp(jsp这个後缀是在spring.xml设定的)
然而我不管怎麽试,结果都是404。
直到後来我又修改专案某个地方并存档,
我看到Server的console,上面写着另一个专案的名称reload,
我觉得奇怪,我修改的是目前的专案,怎麽console显示的是另一个专案reload?
而且另一个专案其实没放进server(我server用的是Tomcat)。
我把另一个专案放入Tomcat,看看会发生什麽事。结果跳出:
Multiple Contexts have a path of tomcat
我再古哥这个问题,然後照着搜寻结果,修改server的server.xml:
<Context docBase="TestProject"
path="/TestAnotherProject" reloadable="true"
source="org.eclipse.jst.jee.server:TestProject"/>
我把path的名称改成TestProject,然後再输入localhost:8080/TestProject/
就可进入index1.jsp
请问
为什麽server.xml会显示其他专案的名称?
------------------------------------------------------------
原因是出在,我这个专案一开始命名後,还有再改名称,但是专案内有地方,
用到专案名称的部分,在名称修改後并没有同步修改,还是沿用旧的名称。
所以Tomcat在载入专案时,因此载入旧的专案名称,这样就进一步导致Tomcat以为
专案名称还是旧的,所以我之後url用新的专案名称时,才会跳出404。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.169.114.245
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1535772590.A.742.html
1F:→ Expsun: InternalResourceViewResolver? 09/02 07:23
2F:推 marx93521: TOMCAT的server.xml? 09/03 09:54
※ 编辑: lueichun (1.167.49.142), 11/21/2018 12:56:49