繁花如伊
2019-05-22 14:04:17
為什么Spring MVC用404響應(yīng)并報(bào)告“在DispatcherServlet中找不到帶有URI我正在編寫一個部署在Tomcat上的Spring MVC應(yīng)用程序。請參閱以下最小,完整且可驗(yàn)證的示例public class Application extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { };
}
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { SpringServletConfig.class };
}
protected String[] getServletMappings() {
return new String[] { "/*" };
}}哪里SpringServletConfig是@Configuration@ComponentScan("com.example.controllers")@EnableWebMvcpublic class SpringServletConfig {
@Bean
public InternalResourceViewResolver resolver() {
InternalResourceViewResolver vr = new InternalResourceViewResolver();
vr.setPrefix("/WEB-INF/jsps/");
vr.setSuffix(".jsp");
return vr;
}}最后,我有一個@Controller包c(diǎn)om.example.controllers@Controllerpublic class ExampleController {
@RequestMapping(path = "/home", method = RequestMethod.GET)
public String example() {
return "index";
}}我的應(yīng)用程序的上下文名稱是Example。當(dāng)我發(fā)送請求時http://localhost:8080/Example/home應(yīng)用程序以HTTP狀態(tài)404響應(yīng)并記錄以下內(nèi)容WARN o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI `[/Example/WEB-INF/jsps/index.jsp]`
in `DispatcherServlet` with name 'dispatcher'我有一個JSP資源,/WEB-INF/jsps/index.jsp我期望Spring MVC使用我的控制器來處理請求并轉(zhuǎn)發(fā)到JSP,那么為什么它會響應(yīng)404呢?
4 回答

鴻蒙傳說
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊
除了之前描述之外,我解決了我的問題:`
@Beanpublic InternalResourceViewResolver resolver() { InternalResourceViewResolver vr = new InternalResourceViewResolver(); vr.setPrefix("/WEB-INF/jsps/"); vr.setSuffix(".jsp"); return vr;}
added tomcat-embed-jasper:
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope></dependency>
`from:JSP文件無法在Spring Boot Web應(yīng)用程序中呈現(xiàn)

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個贊
在我的例子中,我正在關(guān)注版本5.1.2的Interceptors Spring文檔(使用Spring Boot v2.0.4.RELEASE時),并且WebConfig
該類具有注釋@EnableWebMvc
,這似乎與我的應(yīng)用程序中的其他東西相沖突,這阻止了我的靜態(tài)正確解析資產(chǎn)(即沒有將CSS或JS文件返回給客戶端)。
在嘗試了很多不同的東西后,我嘗試刪除它@EnableWebMvc
并且它有效!
編輯:這是參考文檔,說明你應(yīng)該刪除@EnableWebMvc
注釋
顯然至少在我的情況下,我已經(jīng)在配置我的Spring應(yīng)用程序(雖然不是通過使用web.xml
或任何其他靜態(tài)文件,它肯定是以編程方式),所以這是一個沖突。
添加回答
舉報(bào)
0/150
提交
取消