2012-05-22 54 views
0

当我尝试通过https://graph.facebook.com/oauth/access_token?client_id=xxx&client_secret=xxx8&grant_type=fb_exchange_token&fb_exchange_token=xxx与HttpClient类打电话给Facebook时,我得到的答复类似Exception: Network is unreachable。之前它在工作,今天突然停止工作。我没有改变任何东西到我的代码和我的网络配置设置,我想知道什么可能是问题。当我检查日志时,错误是Caused by: java.net.SocketException: Network is unreachable网络无法访问异常

如果我试图直接从浏览器调用url https://graph.facebook.com/oauth/access_token?client_id=xxx&client_secret=xxx8&grant_type=fb_exchange_token&fb_exchange_token=xxx,我可以获得accesstoken。

我被困在这个问题上。谢谢你。

异常堆栈跟踪如下。

at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) 
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) 
    at java.net.Socket.connect(Socket.java:507) 
    at java.net.Socket.connect(Socket.java:457) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:157) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:365) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:477) 
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:280) 
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:337) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:176) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:736) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:162) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133) 
    at eqs.snp.util.HTTPRequestClient.setContent(HTTPRequestClient.java:132) 
    at eqs.snp.sn.facebook.connector.FacebookAPI.refreshAccessToken(FacebookAPI.java:1750) 
    at eqs.snp.sn.facebook.facade.FacebookFacade.getRegisterUser(FacebookFacade.java:262) 
    at eqs.snp.sn.facebook.struts.action.FbUserAction.fbredirect(FbUserAction.java:195) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) 
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249) 
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) 
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) 
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) 
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468) 
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
    at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
    at java.lang.Thread.run(Thread.java:595) 

回答

0

问题是在服务器上运行的jdk。也许有些文件已损坏。因此,安装一个新的jdk并运行应用程序,它就会变好。

0

在您的环境中可能出现网络连接故障。我不确定您的电话是来自个人电脑还是移动应用程序。你别无选择,只能等到连接重新建立。

顺便说一句:浏览器和您的应用程序是否同时进行调用?

另外,您可以使用检查网络连接的可用性ping graph.facebook.com

您也可以在here查看解释类似查询。

+0

是的。来自浏览器和应用的呼叫同时进行。我在我的服务器环境中像你说的那样ping过。这是工作。我的应用程序部署在服务器端环境中。我已经重启服务器很多次了。仍然得到例外:( – kitokid

+0

奇怪!尝试更改url,对于测试,如'http:// www.opencaptcha.com/img/20120522232425-20-60.jpgx'并查看您的应用中是否建立了连接。如果其他第三方应用程序正在从您的系统连接,请检查。 –

+0

我确实打电话给像你提到的网址。但回应是'例外:sun.net.www.protocol.http.HttpURLConnection '。任何想法 ? :(是否与javax.net.ssl.trustStore&javax.net.ssl.keyStore的设置有关?我只是将javax.net.ssl.trustStore设置为切断jre /../ security/cacerts路径。上面的url也在工作:( – kitokid

0

如果您正在运行Debian,它可能与IPv6设置相关。每http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044

套餐:太阳的Java6-jdk的 版本:6-17-1 严重性:重要

NETBASE最近推出的sysctl设定 net.ipv6.bindv6only = 1在/ etc /sysctl.d/bindv6only.conf和这个 设置可能是squeeze中的默认设置。

此设置会破坏java中的网络连接,并且任何流量总是会导致“java.net.SocketException:网络无法访问” 。

它可能应该是一个RC错误,但现在设置为 ,因为用户可以轻松地纠正问题。

快速修复为用户通过该打击:

须藤SED -i的/ net.ipv6.bindv6only \ = \ 1/net.ipv6.bindv6only \ = \ 0 /'\ 的/ etc/sysctl的.d/bindv6only.conf & & sudo invoke-rc.d procps restart