代码之家  ›  专栏  ›  技术社区  ›  Aarish Ramesh

NoSuchMethodError:com.amazonaws.services.s3.model.S3ObjectInputStream.readAllBytes()

  •  1
  • Aarish Ramesh  · 技术社区  · 6 年前

    我正在开发一个springboot应用程序,它使用springaws集成定期轮询S3 bucket,并处理来自S3的轮询对象。在尝试从另一个S3 bucket读取处理过的对象时,出现了异常

    java.lang.NoSuchMethodError: com.amazonaws.services.s3.model.S3ObjectInputStream.readAllBytes()[B
        at com.app.controller.AppController.viewImage(AppController.java:79) ~[classes!/:0.0.1-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.3.RELEASE.jar!/:5.0.3.RELEASE]
    

    当我作为java应用程序部署时,它只在ec2实例中发生,而不会在本地应用程序中发生。考虑到这可能是因为amazonlinuxami中的类加载与jars冲突,我尝试在ubuntu实例中部署,但错误重复出现。

    <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk -1</artifactId>
            <version>1.11.133</version>
        </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-aws -->
            <dependency>
                <groupId>org.springframework.integration</groupId>
                <artifactId>spring-integration-aws</artifactId>
                <version>2.0.0.RELEASE</version>
            </dependency>
    

    有人能帮我解决这个问题吗?另外,请让我知道,如果任何其他细节是必要的,除了提到的

    1 回复  |  直到 6 年前
        1
  •  5
  •   Dzmitry Bahdanovich    6 年前

    realAllBytes InputStream 输入流 从Java9开始。您可能正在运行时使用较低的jdk版本