網上很多示例都是以activeMQ和openMQ為主,對SonicMQ的配置不多。
下面是針對sonicMQ的配置資訊,resources.groovy内容如下:
[i][color=blue]beans = {
connectionFactory(org.springframework.jndi.JndiObjectFactoryBean){
jndiTemplate = ref("jndiTemplate")
jndiName = "testConnectionFactory"
}
jndiTemplate(org.springframework.jndi.JndiTemplate){
environment =
['java.naming.factory.initial':'com.sonicsw.jndi.mfcontext.MFContextFactory',
'com.sonicsw.jndi.mfcontext.domain' : 'Domain1',
'com.sonicsw.jndi.mfcontext.idleTimeout' : '60000',
'java.naming.security.principal' : 'Administrator',
'java.naming.security.credentials' : 'Administrator',
'java.naming.provider.url' : 'tcp://localhost:2506']
}
}[/color][/i]
這裡jndiName對應的connectionFactory是在sonicMQ Management Cosole配置的,名字是testConnectionFactory。
接收的程式代碼如下:
[i][color=blue]class SampleQ1Service {
static expose = ['jms']
static destination = "testQueue"
def onMessage(messageObject) {
println "GOT MESSAGE: $messageObject"
}
}
[/color][/i]
監聽的Queue的名字是testQueue。
發送的代碼如下:
[i][color=blue]class TestController {
def index = {
sendJMSMessage("testQueue", "Blog Entry entitled sss has been created.")
}
}
[/color][/i]
搞定了。