Java 将spring social配置为通过代理工作
我尝试使用spring社交模块运行应用程序。但当与twitter建立连接时,我遇到了一个例外: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
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 );
}
不幸的是,我晚了一点设置此属性:(