2015-09-23 68 views
-1

我正在进行API调用,并且我正在尝试通过sts assume-role API来做到这一点。AWS JAVA SDK CLI:java.net.SocketTimeoutException

我的Java程序是:

STSAssumeRoleSessionCredentialsProvider = new STSAssumeRoleSessionCredentialsProvider(credentials,"arn:aws:iam::093937234853:role/CapOne-CrossAccount-CustomRole-ReadOnly","123"); 
ec2Client.setRegion(getRegion()); 
this.setDescribeInstancesResult(ec2Client.describeInstances()); 

凭证上面我变我通过我的秘密ID和密钥。 我得到的错误是:

Sep 23, 2015 3:25:48 PM com.amazonaws.http.AmazonHttpClient executeHelper 
INFO: Unable to execute HTTP request: connect timed out 
java.net.SocketTimeoutException: connect timed out 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 

,直到我用的是STSAssume作用,这是工作的罚款。但由于需要我必须使用角色。所以我相信,我的凭证变量正在正确设置。

回答

-1

我没有设置我的代理参数正确,该设置以后,它开始工作:

ClientConfiguration clientConfiguration = new ClientConfiguration(); 
    clientConfiguration.setProxyHost("proxy.kdc.capitalone.com"); 
    clientConfiguration.setProxyPort(8099); 
    clientConfiguration.setProxyUsername("EID"); 
    clientConfiguration.setProxyPassword("PWD"); 
    clientConfiguration.setPreemptiveBasicProxyAuth(false); 
+0

因此,换句话说,你没有发布完整的代码来重现问题。 – EJP

+0

不,如果你看到我的代码的第一行,我没有通过那里的客户端配置。但是,我同意我应该提供更多信息。 –