Начало работы с Betfair Java Streaming API

Я пытаюсь начать работу с потоковым API Betfair для Java, но у меня возникают проблемы со сборкой/запуском их примера приложения. Вот шаги, которые я предпринял до сих пор...

Клонировать проект:

git clone https://github.com/betfair/stream-api-sample-code.git

В Eclipse «Импорт проектов из файловой системы или архива» и откройте папку stream-api-sample-code/java

Теперь я вижу клиентские, консольные и swagger проекты в проводнике пакетов.

В нижней части окна Eclipse я вижу 2 ошибки:

The project cannot be built until its prerequisite client is built. Cleaning and building all projects is recommended
The project cannot be built until its prerequisite swagger is built. Cleaning and building all projects is recommended

Я предполагаю, что это потому, что мне нужно создать файлы swagger, как описано здесь:

https://docs.developer.betfair.com/display/1smk3cen4v3lu3yomq5qye0ni/Exchange+Stream+API#ExchangeStreamAPI-SwaggerDefinition

Поэтому я запускаю эту команду в папке /stream-api-sample-code:

java -jar swagger-codegen-cli-2.2.1.jar generate -i ESASwaggerSchema.json -l java -o java/swagger

Теперь у меня много файлов внутри /stream-api-sample-code/java/swagger. Перед запуском команды у меня был только файл pom.xml.

Я не был уверен, что делать дальше, но в eclipse я щелкнул правой кнопкой мыши проект чванства и выбрал «Обновить проект». Теперь я вижу все новые файлы в eclipse.

Но теперь я получаю 888 ошибок, таких как «AuthenticationMessage не может быть разрешен к типу».

Что мне попробовать дальше?


person Ginger    schedule 18.01.2019    source источник
comment
Проблема, которую я смог найти до сих пор, заключается в том, что, поскольку это многомодульный проект maven, проблема заключается в его импорте в eclipse, иначе mvn clean install -DskipTests работает нормально. Eclipse не может найти зависимость swagger-1.0-SNAPSHOT.jar для клиента и, следовательно, ошибка для клиента, теперь консоль зависит от клиента, поэтому консоль не может найти клиента (только в eclipse)   -  person dkb    schedule 18.01.2019
comment
Импортируйте его в intelliJ-idea, он работает нормально, вот снимок: i.stack.imgur. com/typ8X.png   -  person dkb    schedule 18.01.2019
comment
вам не нужно запускать команду java -jar swagger-codegen-cli-2.2.1.jar   -  person dkb    schedule 18.01.2019
comment
Вы можете сослаться на файл stream-api-specification.pdf, представленный в github.   -  person dkb    schedule 18.01.2019
comment
@dkb Спасибо за предложение. Я импортировал папку /streaming-api-sample-code/java/ в IntelliJ. Затем попытался собрать проект, но затем он выдает мне ошибки здесь: imgur.com/gallery/vVDJhjS   -  person Ginger    schedule 19.01.2019
comment
После этого я попытался запустить команду java -jar swagger-codegen-cli-2.2.1.jar, и она сообщила мне, что Android SDK не указан. Я не знаю, почему для этого нужен Android SDK. Позже попробую установить.   -  person Ginger    schedule 19.01.2019
comment
Я пробовал с Java-8, вам нужно выбрать JDK для своего проекта (перейдите в «Вид» -> «Открыть настройки модуля» -> «Настройки проекта» -> «Проект» -> «Проект SDK») и перестроить.   -  person dkb    schedule 19.01.2019
comment
одно из решений непонятных аннотаций, прикрепленных к jdk 11 intellij:   -  person dkb    schedule 19.01.2019


Ответы (1)


Во-первых, добавьте это:

   <dependencies>
    ...
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>
   ...
   </dependencies>

..для чванства/pom.xml.

Это делает проект пригодным для сборки. (Об этом следует сообщить и легко исправить.)

------------------------------------------------------------------------
Reactor Summary:

esa-java-client .................................... SUCCESS [  0.625 s]
swagger ............................................ SUCCESS [ 13.746 s]
client ............................................. SUCCESS [  9.434 s]
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 24.259 s
Finished at: 2019-01-23T22:48:56+01:00
Final Memory: 26M/90M
------------------------------------------------------------------------

Во-вторых: java -jar swagger-codegen-cli-2.2.1.jar generate -i ESASwaggerSchema.json -l java .. генерирует вам (совершенно новый/другой) проект maven, поэтому, пожалуйста, не делайте:

-o java/swagger

но:

-o java/someothernewfolder

... этот сгенерированный проект вы также можете импортировать в eclipse ... и он имеет ту же «ошибку» (см. Первый)). Поэтому, пожалуйста, также добавьте зависимость и сборку javax.annotation (someothernewfolder).

person xerx593    schedule 23.01.2019
comment
Спасибо за чаевые. Как вы создали этот Reactor Summary: ? - person Ginger; 24.01.2019
comment
Спасибо. Я заставил его работать. Хотя мне также пришлось предоставить ему мой AppKey и данные для входа, прежде чем он запустит тесты. Вы должны были сообщить ему и эти детали? - person Ginger; 24.01.2019
comment
Мне не нужно было обновлять зависимости, чтобы заставить его работать, но я отмечу ваш ответ как правильный ответ, поскольку его исправил maven. - person Ginger; 24.01.2019
comment
Кстати, на моей машине мне пришлось ввести mvn build..., а не maven build. Ты знаешь почему? Я не могу найти много информации о разнице между maven и mvn в Google. - person Ginger; 24.01.2019
comment
...приятно, что сработало! да, я застрял на сборке/тестировании консоли из-за отсутствия ключа приложения, учетных данных. по поводу зависимости: запутался! .. относительно принятия: спасибо! :) - person xerx593; 24.01.2019
comment
maven по-человечески говорит mvn - это имя инструмента/исполняемого файла командной строки :) - person xerx593; 24.01.2019
comment
Благодарю за разъяснение. Как вы застряли на сборке/тестировании консоли? Извиняюсь за основные вопросы, но на самом деле я не Java-разработчик. - person Ginger; 24.01.2019
comment
тест не пройден (во время mvn clean install) с соответствующим сообщением: ключ приложения не найден.... stacktrace - person xerx593; 24.01.2019