Alpakka S3Client выбрасывает OptionVal $ .contains NoSuchMethodError - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь использовать разъем Alpakka S3

Когда я создаю экземпляр S3Client, я получаю исключение

Exception in thread "main" java.lang.NoSuchMethodError: akka.util.OptionVal$.contains$extension(Ljava/lang/Object;Ljava/lang/Object;)

Это происходит в

  override def offsetOfModule(out: OutPort): Int = {
if (outPort.contains(out)) {
  pendingBuilder match {
    case OptionVal.Some(composite) ⇒ composite.offsetOfModule(out)
    case OptionVal.None            ⇒ 0 // Output belongs to the last module, which will be materialized *first*
  }
} else
  throw new IllegalArgumentException(s"Port $out cannot be accessed in this builder")

}

в akka-stream (2.11 против 2.5.12).Переменная outPort имеет тип OptionVal.

Метод действительно не существует в OptionVal пакета util в akka-actor_2.11: 2.2.20.То же самое в akka actor репозитории .Но здесь задокументировано как существующее.

Почему эти методы не существуют?Я скучаю по зависимости?Я использовал

<dependency>
    <groupId>com.lightbend.akka</groupId>
    <artifactId>akka-stream-alpakka-s3_2.11</artifactId>
    <version>0.19</version>
</dependency>

1 Ответ

0 голосов
/ 21 июня 2018

Проблема здесь в том, что в akka-actor_2.11 версии 2.2.20 есть некоторая зависимость, которая очень старая и не имеет метода, упомянутого в исключении.

Посмотрите на вывод mvn dependency:analyzeи mvn dependency:tree и посмотрите, какая зависимость влечет за собой устаревшую акку.Затем обновите эту зависимость или принудительно используйте последнюю версию Akka в своем проекте, добавив

<dependencyManagement>
  <dependencies>
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-actor_2.11</artifactId>
        <version>2.5.13</version>
    </dependency>
  </dependencies>
</dependencyManagement>

к своему POM.

...