0

JBossを使用してScalaでメッセージ駆動型Beanを作成するには、クラスに次のようにアノテーションを付ける必要があります。

@MessageDriven(
        activationConfig=Array(@ActivationConfigProperty(propertyName="destination", propertyValue="java:/queue/mail") ),
        messageListenerInterface=classOf[MessageListener])
class MailService extends MessageListener {    
    def onMessage(m: Message) {
        ...
    }   
}

問題は、アノテーション自体がアノテーションである属性を含み、Scalaコンパイラーがそれに対処できないように見えることです。

エラーメッセージは次のとおりです。「activationConfig」の直後の2行目の@記号の周りで強調表示された、「単純な式の不正な開始」。

Javaでは、注釈を次のように記述します。

@MessageDriven(
        activationConfig={@ActivationConfigProperty(propertyName="destination", propertyValue="java:/queue/mail")}, 
        messageListenerInterface=MessageListener.class)

これが機能するように、Scalaに注釈を書く方法はありますか?
コンパイラをだまして、私が望む方法でバイトコードを生成する方法はありますか?

ありがとう、ジョン

4

1 に答える 1

3

これを試して

@MessageDriven(
  activationConfig = Array[ActivationConfigProperty](
    new ActivationConfigProperty(propertyName = "desctination", propertyValue = "java:/queue/mail")),
  messageListenerInterface = classOf[MessageListener]
)
class MailService extends MessageListener {
  def onMessage(m: Message) {
  //...
  }
}
于 2012-09-17T19:07:33.380 に答える