无法加载资源:服务器响应状态为405 | Spring MVC

时间:2016-09-22 08:21:42

标签: java spring spring-mvc

我在使用@RequestMapping(method = RequestMethod.POST)注释向控制器类添加方法时面临一个问题。问题是当我添加此方法并启动应用程序时。应用程序无法加载资源(css,JS等)。在浏览器上我得到:  无法加载资源:服务器响应状态为405(方法不允许) 并在运行日志中收到此消息: org.springframework.web.servlet.PageNotFound handleHttpRequestMethodNotSupported 警告:请求方法' GET'不支持

当我从控制器类中删除此方法时,一切正常。不知道为什么会这样。我确定它与Dispatcher Servlet映射中的Configuration或资源无关,因为没有这个方法,每个东西都可以正常工作。

由于某些业务需求,我需要使用此方法,否则这是不可能的。

任何机构都可以帮我确定问题所在。

@Controller
public class InvoiceController
{
    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public ModelAndView adminPage() {
        String username;
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        username = auth.getName(); //get logged in username
        username.toUpperCase();
        // Logic to build menue based on the Role of the user.
        HashMap hm = new HashMap();
        OrderItems od = new OrderItems();
        ModelAndView model = new ModelAndView();
        model.addObject("usr", username);
        //Set the object for Menue Links on the Page
        model.addObject("mnue", hm);
        model.setViewName("index");
        model.addObject("odi",od);
        return model;

    }

    @RequestMapping(method = RequestMethod.POST)
    public String save(HttpServletRequest request,
                             HttpServletResponse response,
                             Model model)
    {
        System.out.println("Im here in Genaric Post Method");
        return null;
    }
}

请注意我使用的是Spring Security配置。安全性有什么关系吗?或者控制器类配置存在一些问题。

提前感谢您的期待。

此致

D Kamran

1 个答案:

答案 0 :(得分:0)

将端点网址值添加到请求映射

@RequestMapping(value="/index", method = RequestMethod.POST)

这是因为Post方法声明映射到所有路径,因为Method和Controller类都没有该值