繁体   English   中英

Spring-Social:找不到HTTP请求的映射

[英]Spring-Social: No mapping found for HTTP request

今天,我开始将https://github.com/spring-projects/spring-social-samples/tree/master/spring-social-showcase-sec-xml中的示例代码迁移到我的一个较大的spring项目中,这花了一些时间直到我能够正确编译为止,但最终我做到了这一点。 但是,现在我无法访问应映射到社交控制器的任何URL:

警告[http-8080-2] PageNotFound.noHandlerFound(1108)| 在名称为'dispatcher'WARN的DispatcherServlet中,找不到带有URI [/ junkie / app / signin / facebook]的HTTP请求的映射[http-8080-2] PageNotFound.noHandlerFound(1108)| 在名称为'dispatcher'的DispatcherServlet中找不到带有URI [/ junkie / app / connect / facebook]的HTTP请求的映射

我检查以确保控制器已初始化,因此我将它们自动连接到控制器中,而且看起来好像是这样,现在我很茫然。 在花了几个小时将我的头撞在墙上之后,我来到这里希望能有所帮助。 这是配置方式: http : //pastebin.com/tPi5Mtny

我有同样的问题。 我通过将connectController bean放入dispatcher-servlet.xml中来解决了。 在您的情况下,bean是在根应用程序上下文而不是调度程序servlet专用上下文中实例化的。 尽管根应用程序上下文是servlet上下文的父上下文,但这并不意味着servlet可以在其​​父上下文中自动访问bean。 通过此线程显示出来。 您的调度程序永远不知道有一个connectController。

然后,您可能会问为什么展示项目可行? (展示项目的URL已更新: url )。 它的connectController bean也在根应用程序上下文中加载的相同social.xml文件中声明。 它的调度程序servlet如何访问控制器bean? 如果仔细观察,您可能会发现展示柜中没有dispatcher-servlet.xml文件,并且在其web.xml中,它声明了它的dispatcher servlet,如下所示:

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    ...
</servlet>

如果contextConfigLocation的值为空,则表示Servlet没有专用的上下文,而只会使用根应用程序上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM