NoSuchMethodError: com.amazonaws.services.s3.model.S3ObjectInputStream.readAllBytes () - PullRequest
0 голосов
/ 07 января 2019

Я работаю над приложением весенней загрузки, которое периодически опрашивает корзину S3, используя интеграцию Spring AWS, и обрабатывает опрашиваемый объект из 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]

Это происходит только в случаях ec2, когда я развертываюсь как приложение Java, но не происходит в моем локальном приложении. Подумав, что это могло быть из-за конфликта загрузки классов с jar-файлами в amazon-linux ami, я попытался развернуть его в экземпляре 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>

Может кто-нибудь помочь мне решить эту проблему? Также, пожалуйста, дайте мне знать, если нужны какие-либо другие детали, кроме упомянутых

1 Ответ

0 голосов
/ 07 января 2019

realAllBytes - это метод родительского класса InputStream. Этот метод был добавлен в InputStream начиная с Java 9. Возможно, вы используете более низкую версию JDK во время выполнения

...