2017-01-02 4 views
0

После того, как я загрузил и запустил свой java-файл java, я получаю предупреждение и ошибку. Это предупреждение:AWS lambda JAVA: использование внешних библиотек

This function contains external libraries. Uploading a new file will override these libraries. 

И Ошибка:

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:348) 
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 

Я могу построить флягу без проблем, вся зависимость в моем П. У меня есть несколько библиотек, которые я использую, например org.json, которые также бросают ту же ошибку java.lang.NoClassDefFoundError. Я импортирую эти классы. Мой банку, однако, не включает эти файлы, только мой класс. Я подозреваю, что это связано. Это правда? Нужно ли мне искать замену класса Amazon для этих «внешних» классов, которые я использую? Я смущен.

ответ

6

Amazon Lambda не будет загружать ваши зависимости для вас. Он ожидает, что ваш файл развертывания будет содержать все зависимости, необходимые для запуска вашей функции Lambda. Вам нужно будет переключиться на использование метода развертывания zip, который позволяет включать несколько файлов jar (ваш банкомат функции Lambda и все банки с зависимостями). Следуйте инструкциям here.

+0

Эта ссылка - именно то, что мне нужно! Спасибо! – user2917629

3

Другой вариант - создать файл с жирным флагом. Это банка, которая уже содержит всю вашу зависимость. Такой файл будет больше для развертывания, но проще управлять. Я бы порекомендовал вам использовать какой-нибудь инструмент построения, например Maven, для сборки толстой банки.

0

Просто добавьте свой байт зависимости в зависимости от зависимостей> зависимостей> тега зависимостей в pom.xml в дополнение к обычному дереву зависимостей. Это также создаст толстую банку.

Смежные вопросы