[問題] 進入專案起始頁出現404
我在專案內使用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://www.ptt.cc/bbs/java/M.1535772590.A.742.html
→
09/02 07:23,
6年前
, 1F
09/02 07:23, 1F
推
09/03 09:54,
6年前
, 2F
09/03 09:54, 2F
※ 編輯: lueichun (1.167.49.142), 11/21/2018 12:56:49
java 近期熱門文章
PTT數位生活區 即時熱門文章