0

为了在 Scala 中创建消息驱动 bean,使用 JBoss,我需要对类进行如下注释:

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

问题在于注解包含一个属性,该属性本身就是一个注解,而 Scala 编译器似乎无法处理它。

错误消息是:“非法开始简单表达式”,在第二行的 @ 符号周围突出显示,就在“activationConfig”之后。

在 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 回答