当前位置: 首页 > 知识库问答 >
问题:

使用AWS SDK for Java v2创建亚马逊S3存储桶:线程“main”中的异常java.lang.NoClassDefFoundError

利海阳
2023-03-14

尝试使用java api创建s3桶aws时出现以下错误:

错误:线程“main”java.lang.NoClassDefFoundError中的异常:software/amazon/awssdk/protocols/query/internal/unmarshall/AwsXmlErrorUnmarshaller at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlErrorTransformer。(AwsXmlErrorTransformer.java:40) at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlErrorTransformer.(AwsXmlErrorTransformer.java:34) at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlErrorTransformer$Builder.build(AwsXmlErrorTransformer.java:113) at software.amazon.awssdk.protocols.xml.AwsXmlProtocolFactory.createErrorTransformer(AwsXmlProtocolFactory.java:135) at software.amazon.awssdk.protocols.xml.AwsS3ProtocolFactory.createErrorCouldBeInBodyResponseHandler(AwsS3ProtocolFactory.java:80) atsoftware.amazon.awssdk.services.s3.DefaultS3Client.createBucket(DefaultS3Client.java:1144) at com.act.niti.main(niti.java:33) 由: java.lang.ClassNotFoundException: software.amazon.awssdk.protocols.query.internal.unmarshall.AwsXmlErrorUnmarshaller at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) atjava.lang.ClassLoader.loadClass(ClassLoader.java:351) ...8 更多

  Code : 
    
    try {
     Region region = Region.US_EAST_2; 
     S3Client s3 = S3Client.builder()
        .region(region)
        .build();
         S3Waiter s3Waiter = s3.waiter();
         CreateBucketRequest bucketRequest = CreateBucketRequest.builder()
                .bucket("abc")
                .build();
         
        
         s3.createBucket(bucketRequest); //creating s3 bucket
          System.out.println("bucket........abc");
          HeadBucketRequest bucketRequestWait = HeadBucketRequest.builder()
          .bucket("abc")
          .build();
          
          // Wait until the bucket is created and print out the response
          WaiterResponse<HeadBucketResponse> waiterResponse =
          s3Waiter.waitUntilBucketExists(bucketRequestWait);
          waiterResponse.matched().response().ifPresent(System.out::println);
          System.out.println("abc" +" is ready");
         

    } catch (S3Exception e) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
                Note : Using java 8

共有1个答案

祁兴运
2023-03-14

刚刚测试了此适用于 Java 的 AWS 开发工具包 V2 示例,它工作正常 - 如此屏幕截图所示,该屏幕截图逐行显示调试。

您的错误看起来像丢失的类。您是否使用了POM文件中显示的POM依赖项?

https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/s3

 类似资料:
  • 问题是,我正在尝试获取Amazon S3存储库中的文件。我收到了来自亚马逊的消息“InvalidAccessKeyId” 您提供的AWS访问密钥ID不存在于我们的记录中。(服务:Amazon S3;状态代码:403;错误代码:InvalidAccessKeyId;请求ID:62781C914754D8ED;S3扩展请求ID:fhv2t247XoEK99IZ6/f8lcWUz7IWlGybGfb2H

  • 如果我能知道根本原因是什么就好了。

  • 当用户上传图片时,我正在动态调整图像大小。原始图片存储在Amazon S3上一个名为djangobucket的bucket中。在这个桶中,包含数千个文件夹。 每个文件夹都以用户命名。我不必担心存储桶创建或文件夹创建,因为所有这些都是从客户端处理的。 下图为: 如您所见,Bob有许多图片。一旦用户将图片上传到S3,我就会通过URL通过Django下载它,在这种情况下,它将是:http://s3.am

  • 我正在尝试将图像上传到我的AWS存储桶,我创建了一个新用户授予他完整的控制权 但是,在上传时,我收到以下错误: 05-27 07:09:47.219: W/System.err(20594):com.amazonaws.services.s3.model.Amazon S3异常:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:访问被拒绝;请求ID:),S3扩展请求ID:/=

  • 我已经将Pay与Amazon与我的Web应用程序集成在一起,但我已经确定,只有在我执行代码调试时才能捕获资金,如果我没有断点,则不会发生。对我来说,这表明有必要暂停。我正在使用定期付款。相关代码部分如下: 因此,如果在捕获行的

  • 我正在尝试运行以下代码 我的配置类是: AppConfig.class RepositoryConfig.class 我的模型课是:POC。班 我的存储库类是:POCRepository类 我的服务等级是: 我正在运行main类,出现以下错误。 我的网络。xml详细信息如下 请帮帮我