[英]No mapping found for HTTP request with URI error?
我寫了一個spring boot項目。 它有三個文件。
應用程序配置文件
package config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@Configuration
@EnableWebMvc
@ComponentScan
(basePackages = {"controller"})
public class AppConfig {
}
ServletInitilizer.java
package config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[0];
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[]{AppConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
你好控制器.java
package controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
public class HelloController {
@RequestMapping("hi")
@ResponseBody
public String hi() {
return "Hello, world.";
}
}
當我嘗試運行它時,它出現錯誤“在 DispatcherServlet 中找不到名稱為‘dispatcher’的 URI [/SpringC1_01/] 的 HTTP 請求的映射”。 這是因為服務器沒有找到控制器還是其他原因? 謝謝。
是的。 我懷疑代碼中有兩個問題。
最重要的是,您在這里遺漏了一些東西。
包含public static void main 的主類,這個類應該用@SpringBootApplication 注釋
HelloController 應該用 @RestController 注釋
在方法級別,它肯定應該指向某些 HTTP 方法,在您的情況下它可能是 Get 映射,因此在方法周圍添加 @GetMapping 注釋。
從方法級別移動 RequestMapping 注釋並將其添加到 HelloController 類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.