为POST的HTTP路径'http:// localhost:8080 / error'映射的模糊处理程序方法

时间:2018-11-12 03:51:20

标签: spring-boot

我的数据已成功插入数据库中,但我仍然不断收到此错误。一切正常,但我很生气,因为我不断收到此错误。
这是我的代码:

$.ajax
({
type: 'post',
url: '/SendMessage',
data: 
{
    message_id: 0,
    message_sender: user_id,
    message_to: item,
    message_info: message,
    message_time: dateFormat,
    message_seen: "NO"

},
success: function (response) 
{
    alert("success");
},
});

这是我的控制人:     私有静态最终String PATH =“ / error”;

@RequestMapping(value="/SendMessage" , method=RequestMethod.POST)
public void sendMessage(Message message) {
    messageService.saveOrUpdate(message);
}

@RequestMapping(value= PATH) 
public ModelAndView error404() {
    ModelAndView model = new ModelAndView("error/error404");
    return model;
}

@Override
public String getErrorPath() {
    return PATH;
}

application.properties

spring.mvc.view.prefix= /WEB-INF/jsp/
spring.mvc.view.suffix= .jsp

server.error.whitelabel.enabled= false 
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration

错误:

  

为HTTP路径'http://localhost:8080/error'映射的模糊处理程序方法:{public org.springframework.web.servlet.ModelAndView com.rtc_insurance.controller.SubmitController.error404(),公共org.springframework.web.servlet。 ModelAndView com.rtc_insurance.controller.WebsiteController.error404()}       在org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:371)〜[spring-webmvc-5.0.9.RELEASE.jar:5.0.9.RELEASE]

希望您能帮助我。非常感谢!!!

2 个答案:

答案 0 :(得分:0)

从该错误看来,您已经声明了多个具有相同url“错误”或相同方法签名的方法。

因此spring无法确定要映射的url,因为它在同一url上获取了多种方法。

答案 1 :(得分:0)

假设问题实际上与问题的标题有关(为POST的HTTP路径'http://localhost:8080/error'映射的歧义处理程序方法)

我可以这样说:

  • 您的控制器和Ajax请求正常,并且在这里真的无关紧要
  • /error上有一个映射出现在您的一个控制器中

Spring有自己的错误处理(可以重写,但可能不像您尝试的那样),并且它也映射到/error,因此这里存在映射冲突。

您可以了解有关Spring Boot错误处理here(尤其是this part)的更多信息 可以相关)

更新: 更新问题后,请查看com.rtc_insurance.controller.WebsiteController.error404 一定是您的控制器不符合我的答案上面链接中提到的spring boot错误处理机制