Невозможно импортировать библиотеку AWS в Обработку - PullRequest
2 голосов
/ 08 февраля 2020

Я пытался решить эту проблему в течение нескольких дней, но я начинаю сдаваться ... Как мне импортировать и использовать Amazon AWS 2.0 SDK в обработке?

Я хочу использовать Amazon DynamoDB, чтобы иметь возможность иметь несколько переменных (рекорды, количество воспроизведений и т. Д. c.) Для моей игры в облаке. Первоначально я собирался использовать Raspberry Pi, который у меня есть, но потом я обнаружил, что Amazon предоставляет некоторое использование DynamoDB бесплатно, и решил использовать это.

Я попытался просто загрузить банку и бросить ее в Окно обработки (для его добавления в папку «code»), используя Maven для сборки части 2.0 SDK с DynamoDB из CMD, а затем помещая сгенерированную папку в папку библиотеки Processing (хотя я точно не знал, что именно чтобы положить туда, я попробовал несколько комбинаций всего, только банку, папку sr c ...). Но когда я в процессе Обработки пишу import com.amazonaws.*;, он просто говорит мне, что библиотеки, которую я пытаюсь импортировать, не существует ... Это была моя последняя попытка структурирования папки: Попытка структуры папки .

Я бы очень признателен за любую помощь, я действительно новичок в этом, и не могу найти какие-либо учебные пособия специально для этого в обработке! Я рад предоставить любую необходимую информацию. Спасибо!

1 Ответ

1 голос
/ 09 февраля 2020

Добавление новой библиотеки в Processing может потребовать довольно много работы, в зависимости от того, сколько ей нужно зависимостей. К счастью, в обработку можно добавить поддержку AWS DynamoDB (используя AWS SDK для Java 2.0 ). Вот эскиз обработки, который показывает простой пример:

import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.GetItemOutcome;
import com.amazonaws.services.dynamodbv2.document.PrimaryKey;
//import com.amazonaws.services.dynamodbv2.document.Table;

com.amazonaws.services.dynamodbv2.document.Table highScoreTable;

void settings() {
  size(640, 480);
}

void setup() {
  DynamoDB dynamoDB = new DynamoDB(
        AmazonDynamoDBClientBuilder
            .standard()
            .withRegion(Regions.EU_NORTH_1)
            .build()
  );

  highScoreTable = dynamoDB.getTable("stackoverflow-q60122736");

  noLoop();
}

void draw() {
  PrimaryKey primaryKey = new PrimaryKey("id", "player-007");
  GetItemOutcome outcome = highScoreTable.getItemOutcome(primaryKey);
  String highScore = outcome.getItem().getString("high-score");

  fill(0);
  text("Hi AWS DynamoDB! The high score is " + highScore + ".", 10, 20);
}

Это официальное руководство по ручной установке библиотеки для обработки:
https://github.com/processing/processing/wiki/How-to-Install-a-Contributed-Library

Для обработки, чтобы найти jar-файлы, относящиеся к DynamoDB, вам нужно создать новый каталог в каталоге библиотек обработки (я создал этот каталог в моей системе: ~ / sketchbook / library / awsdynamodb111717). В этом новом каталоге вы создаете «библиотечный» каталог, в который вы помещаете упомянутые ниже файлы jar. Примечание: имя основного * jar-файла DynamoDB AWS должно совпадать с именем нового каталога верхнего уровня (в моем случае: awsdynamodb111717).

Я скачал эти девять jar-файлов, чтобы получить AWS DynamoDB для работы (обработка показалась недовольной штрихами и точками в именах, поэтому я удалил их):

Первые два файла JAR взяты из AWS SDK. Другие семь являются зависимостями.

В моей системе структура каталогов выглядит следующим образом:

~/sketchbook/libraries/awsdynamodb111717
└── library
    ├── awscore111717.jar
    ├── awsdynamodb111717.jar
    ├── commonslogging12.jar
    ├── httpclient4511.jar
    ├── httpcore4413.jar
    ├── jacksonannotations2102.jar
    ├── jacksoncore2102.jar
    ├── jacksondatabind2102.jar
    └── jodatime2105.jar

Наконец, вам нужно где-то хранить свои учетные данные AWS (например, в ~ / Файл .aws / credentials; для получения дополнительной информации см. Java Примеры кода .

Для целей тестирования я создал таблицу "stackoverflow-q60122736" с элементом для получения эскиза обработки для извлечения , Для тестирования использовалась обработка 3.5.3.

...