无法使用Akka-Camel连接到SQS

时间:2014-08-19 21:28:27

标签: scala apache-camel akka amazon-sqs

我试图通过我的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"

我使用的是akka-camel版本2.1.4,它应支持aws-sqs端点。

1 个答案:

答案 0 :(得分:2)

堆栈跟踪显示您需要将camel-aws jar和aws-sdk jar放入类路径中。