Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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.lang.NullPointerException亚马逊web服务ec2_Java_Amazon Ec2 - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.NullPointerException亚马逊web服务ec2

“线程中的异常”;“主要”;java.lang.NullPointerException亚马逊web服务ec2,java,amazon-ec2,Java,Amazon Ec2,我是java编程新手,我一直在尝试使用一个java程序启动一个aws EC2实例,该程序是我使用各种网站的帮助编写的,但经过两天的尝试,我似乎无法成功 这是我的java代码 `public class StartInstancesRequest extends Amamzon WebServiceRequest implements java.io.Serializable,java.lang.Cloneable, DryRunSupportedRequest<StartInsta

我是java编程新手,我一直在尝试使用一个java程序启动一个aws EC2实例,该程序是我使用各种网站的帮助编写的,但经过两天的尝试,我似乎无法成功

这是我的java代码

    `public class StartInstancesRequest extends Amamzon WebServiceRequest implements java.io.Serializable,java.lang.Cloneable, DryRunSupportedRequest<StartInstancesRequest>{`

        private static final long serialVersionUID = 1L;
        private static ClientConfiguration credentials;

        @Override
        public Request<StartInstancesRequest> getDryRunRequest() {      

                    return null;
        }   

          public static void main(String[] args)
          {
              AmazonEC2Client ec2 = new AmazonEC2Client(credentials); 
                RunInstancesRequest runInstancesRequest = new RunInstancesRequest();

                      runInstancesRequest.withImageId("ami-96f1c1c4")
                                         .withInstanceType("t2.micro")
                                         .withMinCount(1)
                                         .withMaxCount(1)
                                         .withKeyName("development")
                                         .withSecurityGroups("DevelopmentTesting");

                      RunInstancesResult res = ec2.runInstances(runInstancesRequest); 
                      System.out.println(res.toString());
                      return;
          }
        public static ClientConfiguration getCredentials() {
            return credentials;
        }
        public static void setCredentials(ClientConfiguration credentials) {
            StartInstancesRequest.credentials = credentials;
        }
 }
`公共类StartInstanceRequest扩展Amamzon WebServiceRequest实现java.io.Serializable、java.lang.Cloneable、DryRunSupportedRequest{`
私有静态最终长serialVersionUID=1L;
私有静态客户端配置凭据;
@凌驾
公共请求getDryRunRequest(){
返回null;
}   
公共静态void main(字符串[]args)
{
AmazonEC2Client ec2=新的AmazonEC2Client(凭证);
RunInstanceRequest RunInstanceRequest=新的RunInstanceRequest();
RunInstanceRequest.withImageId(“ami-96f1c1c4”)
.withInstanceType(“t2.micro”)
.withMinCount(1)
.withMaxCount(1)
.withKeyName(“开发”)
.与安全组(“开发测试”);
RunInstancesResult=ec2.runInstances(runInstancesRequest);
System.out.println(res.toString());
回来
}
公共静态客户端配置getCredentials(){
返回凭证;
}
公共静态void setCredentials(客户端配置凭据){
StartInstanceRequest.credentials=凭证;
}
}
当我运行这个程序时,我在控制台中得到了这个

线程“main”java.lang.NullPointerException中的异常位于 com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:92) 在 AmazonHttpClient(AmazonHttpClient.java:200) 在 AmazonWebServiceClient.(AmazonWebServiceClient.java:129) 在 com.amazonaws.services.ec2.AmazonEC2Client.(AmazonEC2Client.java:196) 在 amazonaws.services.ec2.AmazonEC2Client.(AmazonEC2Client.java:173) 在 com.amazonaws.services.ec2.AmazonEC2Client.(AmazonEC2Client.java:101) 在 com.amazonaws.services.ec2.model.StartInstancesRequest.main(StartInstancesRequest.java:25)


有人能帮我吗?我写的代码正确吗???

您将
null
凭据传递到

          AmazonEC2Client ec2 = new AmazonEC2Client(credentials); 

导致NullPointerException。

看起来您在创建AmazonEC2Client对象时提供了null凭据对象。我在任何地方都没有看到对setCredentials()的调用。你的证书来自哪里?您是否尝试过ec2=new AmazonS3Client(),但没有传递任何凭据对象(这将为您提供默认的凭据提供程序链)?是的,我对java和AWS API都是新手,解决了这个问题,4个月前我问了这个问题。:)谢谢你的努力。