Я пытаюсь отправить сообщения через свое приложение Scala в очередь SQS. При попытке подключиться к SQS я получаю следующую ошибку:

ProducerRegistrar$$anonfun$receive$3.applyOrElse(CamelSupervisor.scala:159)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425)
    at akka.actor.ActorCell.invoke(ActorCell.scala:386)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230)
    at akka.dispatch.Mailbox.run(Mailbox.scala:212)
    at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:506)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: aws-sqs://analyticsSandboxSQS?accessKey=<access>&secretKey=<secret> due to: No component found with scheme: aws-sqs
    at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:475)
    at akka.camel.internal.ProducerRegistrar$$anonfun$receive$3.applyOrElse(CamelSupervisor.scala:151)
    ... 9 more

Я использовал следующий код для настройки URI:

import akka.actor.{ Actor, ActorSystem, Props }
import akka.camel.{ Oneway, Producer }

class EventSenderSQS extends Actor with Producer with Oneway {
  def endpointUri = "aws-sqs://queueName?accessKey=<access>&secretKey=<secret>"
}

И я использую следующее, чтобы попытаться отправить сообщение:

val sys = ActorSystem("sys")
val eventsActor = sys.actorOf(Props[EventProducerSQS])
eventsActor ! "testMessage"

Я использую версию 2.1.4 akka-camel, которая должна поддерживать конечную точку aws-sqs.

1
Andrew Jones 20 Авг 2014 в 01:28

1 ответ

Лучший ответ

Трассировка стека показывает, что вам нужно поместить jar-файлы camel-aws и aws-sdk в путь к классам.

2
Willem Jiang 20 Авг 2014 в 06:40
Это сработало! В частности, это зависимости SBT, которые я добавил: "org.apache.camel"% "camel-aws"% "2.12.2", "com.amazonaws"% "aws-java-sdk"% "1.0.002 "
 – 
Andrew Jones
20 Авг 2014 в 22:45