2012-10-26 88 views
3

我想獲得與春季社會工作的Facebook登錄。 我在Facebook上創建了一個應用程序。春季社交ConnectController /連接/ Facebook給出了一個404錯誤

調度的Servlet

<servlet-mapping> 
    <servlet-name>ABC</servlet-name> 
    <url-pattern>*.cs</url-pattern> 
    </servlet-mapping> 

configfured了個XML

<servlet-mapping> 
<servlet-name>ABC</servlet-name> 
<url-pattern>*.cs</url-pattern> 
</servlet-mapping> 

<!-- Configure a connection repository through which account-to-provider connections will be stored --> 
<beans:bean id="connectionRepository" class="org.springframework.social.connect.jdbc.JdbcConnectionRepository"> 
<beans:constructor-arg ref="dataSource" /> 
<beans:constructor-arg ref="textEncryptor" /> 
</beans:bean> 



<!-- Configure a Facebook service provider --> 
<beans:bean class="org.springframework.social.facebook.connect.FacebookServiceProvider"> 
<beans:constructor-arg index="0" value="564846465216" /> 
<beans:constructor-arg index="1" value="f4554iojfjh9iu7km54f54pok5ok4" /> 
<beans:constructor-arg index="2" ref="connectionRepository" /> 
</beans:bean> 

<beans:bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors" factory-method="noOpText" /> 

<beans:bean class="org.springframework.social.web.connect.ConnectController"> 
<beans:constructor-arg index="0" value="http://localhost:8080/CitySpanks/" /> 
</beans:bean> 

我指的是這個鏈接 http://static.springsource.org/spring-social/docs/1.0.0.M2/reference/html/connecting.html

在我的jsp

<a href="<c:url value="connect/facebook" />">Connect to Facebook</a> 

什麼我失蹤???點擊上面的鏈接時,我總是收到404錯誤。

謝謝:)

回答

1

的DispatcherServlet被映射到*的.cs,但在你的JSP中的鏈接是/連接/ Facebook的(相對於應用程序根目錄)。該URL不以.cs結尾,因此沒有匹配,DispatcherServlet也不會涉及。

儘管您仍然可以將DispatcherServlet映射到任意的URL模式,但Spring 3.0以來的「最佳實踐」僅僅是將其映射到「/」,以允許它響應各種URL,包括用於RESTful API的URL 。

當然,這也意味着DispatcherServlet會響應圖片,樣式表,JavaScript和其他資源的請求,這可能不是您想要的。並且是爲了解決這個問題而創建的。有關更多詳細信息,請參閱參考文檔herehere

3

我不知道你在哪裏,在你的項目,但我覺得有以下可能容易忽視...

如果你看一下樣本項目spring-social-showcase你會發現,在

spring-social-showcase-sec/src/main/webapp/WEB-INF/views/connect 

存在以下頁面: status.jsp,facebookConnect.jsp,facebookConnected.jsp。

在樣本項目時,下列(左)要求,將解決這個.jsp的下面(右):

"connect/facebook" => Connected => "connect/facebookConnected.jsp" 
"connect/facebook" => Not Connected => "connect/facebookConnect.jsp" 
"connect"   => "connect/status.jsp" 

這是記錄在這裏:4.3.1 Displaying a connection page

因此,要獲得這個例子要在你的代碼中工作,你必須創建與上面的.jsp相同的目錄結構「WEB-INF/views/connect /」。否則,他們將不會被發現,因此是404。我相信這可以通過ConnectController課程在幕後解決,如上面鏈接的文檔中所述。


但是,您可能要開始使用他們的網站。在spring-social-samples中找到xml配置,一旦你掌握了這一點,就從那裏開始。

<!-- Processes application requests --> 
<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> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
+0

用戶在嘗試訪問映射到「連接到Facebook」按鈕的connect/facebook時正在獲取404 – Sategroup