Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将spring social配置为通过代理工作_Java_Spring_Proxy_Spring Social - Fatal编程技术网

Java 将spring social配置为通过代理工作

Java 将spring social配置为通过代理工作,java,spring,proxy,spring-social,Java,Spring,Proxy,Spring Social,我尝试使用spring社交模块运行应用程序。但当与twitter建立连接时,我遇到了一个例外: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api.twitter.com/oauth/request_token": Connection refused; nested exception is java.net.ConnectException: Co

我尝试使用spring社交模块运行应用程序。但当与twitter建立连接时,我遇到了一个例外:

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api.twitter.com/oauth/request_token": Connection refused; nested exception is java.net.ConnectException: Connection refused
我知道这是因为代理,如果它在另一台没有代理的计算机上运行,它就可以正常工作。声明代理参数的方法,如:

System.setProperty( "http.proxyPort", "8090" );
System.setProperty( "https.proxyPort", "8090" );
System.setProperty( "http.proxyHost", "192.168.1.50" );
System.setProperty( "https.proxyHost", "192.168.1.50" );
或在开始时传递VM参数:

-Dhttp.proxySet=true -Dhttp.proxyHost=192.168.1.50 -Dhttp.proxyPort=8090 -Dhttps.proxyHost=192.168.1.50 -Dhttps.proxyPort=8090
不要工作。只有当我使用SpringSocial+SpringBoot时,它才有帮助。据我所知,spring boot具有初始化内部
RestTemplate
(在
Twitter.class
)和代理设置的功能


实际上,问题是:如果应用程序中没有使用SpringBoot,如何初始化SpringSocial以使用代理?Thx.

这是一个非常愚蠢的错误,花费了许多小时。也许这对某人会有帮助。要配置spring social,需要如下配置类:

@Configuration
@EnableSocial
public class SocialConfig
    extends SocialConfigurerAdapter
{
...
}
有很多方法,其中之一是

@Override
public void addConnectionFactories( ConnectionFactoryConfigurer cfConfig)
{
    TwitterConnectionFactory twitterConnectionFactory = new TwitterConnectionFactory( "twitter.appId", "twitter.appSecret" );
    cfConfig.addConnectionFactory( twitterConnectionFactory );
}
在此方法中,创建TwitterConnectionFactory。。。它包含
restemplate
,它向twitter发送请求。因此,应在创建工厂之前设置
系统
代理属性。因此,最简单的情况是:

@Override
public void addConnectionFactories( ConnectionFactoryConfigurer cfConfig )
{    
    System.setProperty( "http.proxyPort", "8090" );
    System.setProperty( "https.proxyPort", "8090" );
    System.setProperty( "http.proxyHost", "192.168.1.50" );
    System.setProperty( "https.proxyHost", "192.168.1.50" );
    TwitterConnectionFactory twitterConnectionFactory = new TwitterConnectionFactory( "twitter.appId", "twitter.appSecret" );
    cfConfig.addConnectionFactory( twitterConnectionFactory );
}
不幸的是,我晚了一点设置此属性:(