AWS身份验证需要有效的Date或x-amz-date标头

时间:2015-12-27 06:23:05

标签: java eclipse amazon-web-services jodatime

我试图将我的项目部署到amazon AWS Elastic Beanstalk(使用eclipse),但我收到以下错误:

com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 649FE9210F6B7758), S3 Extended Request ID: rPaO3PhaiVUP3Nwt6ORehaZUICUJ0nh+Ij8od3Aiq9RoTZtwaZipVyDRI+Hr6qa67A1vwgjpbJo=
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3699)
at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1434)
at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1294)
at com.amazonaws.eclipse.elasticbeanstalk.ElasticBeanstalkPublishingUtils.publishApplicationToElasticBeanstalk(ElasticBeanstalkPublishingUtils.java:123)
at com.amazonaws.eclipse.elasticbeanstalk.jobs.UpdateEnvironmentJob.run(UpdateEnvironmentJob.java:189)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)


eclipse.buildId=4.3.2.M20140221-1700
java.version=1.8.0_66
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US

我尝试了以下内容:

  1. 将joda-time 1.8.1添加到WebContent \ WEB-INF \ lib,并将jar添加到我的动态Web项目中。
  2. 使用

    验证了版本

    new DateTime().getClass().getProtectionDomain().getCodeSource()

  3. 但我仍然收到此错误。 我试图寻找其他解决方案,但没有运气。

3 个答案:

答案 0 :(得分:2)

你有 Java 1.8u60 吗?

根据指定的here JodaTime 在使用 Java 1.8u60 开始格式化时区方面存在问题。

升级到 JodaTime 版本 2.8.1 或更高版本可解决此问题。

他们为此创建了拉取请求:JodaOrg/joda-time#291

我希望这会对你有所帮助。

答案 1 :(得分:1)

问题是java版本jdk1.8.0_60更大降级到jdk1.8.0_45会解决问题

答案 2 :(得分:0)

所以我设法在this问题的帮助下解决了这个问题 除了重新安装aws工具包之外,我还重新安装了eclipse。