RabbitMQ の Java Client を Scala から使う

下準備

下記から RabbitMQ Java Client をダウンロードする
http://www.rabbitmq.com/java-client.html
「ant dist」でコンパイルすると「build/dist」配下に幾つかの jar が出来る。
今回は下記の二つを利用する。

  • commons-io-1.2.jar
  • rabbitmq-client.jar

Scala Source

import com.rabbitmq.client.ConnectionFactory

object Test {
  def main(args:Array[String]) = {
    val factory = new ConnectionFactory()

    factory.setUsername("guest")
    factory.setPassword("guest")
    factory.setVirtualHost("/")
    factory.setHost("localhost")
    factory.setPort(5672)

    val conn = factory.newConnection()
    val channel = conn.createChannel()

    val queueName = channel.queueDeclare().getQueue()
    channel.basicPublish("", queueName, null, "Hello RabbitMQ.".getBytes())

    val response = channel.basicGet(queueName, true)
    if (response != null) {
      val message = new String(response.getBody(), "UTF-8")
      println(message)
    }

    channel.close()
    conn.close()
  }
}

コンパイルと実行

fsc-2.8 -classpath ./rabbitmq-client.jar Test.scala
scala-2.8 -classpath .:./rabbitmq-client.jar:./commons-io-1.2.jar Test