为了使用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”之后。
在Java中我会按如下方式编写注释:
@MessageDriven(
activationConfig={@ActivationConfigProperty(propertyName="destination", propertyValue="java:/queue/mail")},
messageListenerInterface=MessageListener.class)
在Scala中有没有办法编写注释,这样才有效? 有没有办法欺骗编译器以我想要的方式生成字节代码?
谢谢, 约翰
答案 0 :(得分:2)
试试这个
@MessageDriven(
activationConfig = Array[ActivationConfigProperty](
new ActivationConfigProperty(propertyName = "desctination", propertyValue = "java:/queue/mail")),
messageListenerInterface = classOf[MessageListener]
)
class MailService extends MessageListener {
def onMessage(m: Message) {
//...
}
}