我正在开发一个Spring Boot应用程序,该应用程序使用spring aws集成定期轮询S3存储桶并处理来自S3的被轮询对象。尝试从另一个S3存储桶读取已处理的对象时,出现异常
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实例中发生,而在本地不发生。认为这可能是由于类加载与Amazon-linux ami中的jar冲突导致的,我尝试在ubuntu实例中进行部署,但该错误反复出现。
只是我的pom.xml的一小段
<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>
有人可以帮助我解决此问题吗?另外,请让我知道是否需要除上述细节之外的其他细节
答案 0 :(得分:2)
realAllBytes
是父类InputStream
的方法。自Java 9以来,此方法已添加到InputStream
中。您可能在运行时使用了较低的jdk版本