AKKA Camel - 如何拆箱CamelMessage?

时间:2014-01-07 23:02:15

标签: scala apache-camel akka

我有以下简单路线:

import org.apache.camel.builder.RouteBuilder
import akka.actor.ActorRef

import akka.camel._

class SimpleRouteBuilder(val responder: ActorRef) extends RouteBuilder  {

  def configure =  {
    from("file:C:\\datafiles\\input?noop=true&readLock=changed").to(responder)
  }

我的响应者演员如下:

class Responder extends Actor {
  def receive = {
    case msg: CamelMessage => { ??? }
  }
}

只是想知道如何将CamelMessage类型的msg转换为 有用的东西,所以我可以提取文件名或文件路径。

更新

我找到了一个解决方案,但正如Viktor Klang所指出的那样,它容易出错。

更改路线构建器:

  from("file:C:\\datafiles\\input?noop=true&readLock=changed").convertBodyTo(classOf[java.io.File]).to(responder)

以这种方式解压缩java.io.File对象:

msg.body.asInstanceOf[java.io.File]

正确的解决方案?

更正确的解决方案似乎是:

implicit val camelContext = CamelExtension(context.system).context;

self ! camelMessage.bodyAs[java.io.File];

0 个答案:

没有答案