在groovy中未调用MessageListener类的onMessage

在groovy中未调用MessageListener类的onMessage,groovy,jms,Groovy,Jms,这是我的消费代码。在这里,我试图不断地聆听一个队列,当消息传来时,我试图向另一个队列发送回复。但在这里,当我设置MessageListener时,不会调用我的on Message代码 import groovyjarjarantlr.debug.MessageEvent; import groovyjarjarantlr.debug.MessageListener; import groovyjarjarantlr.debug.TraceEvent; import groovyjarjarasm

这是我的消费代码。在这里,我试图不断地聆听一个队列,当消息传来时,我试图向另一个队列发送回复。但在这里,当我设置MessageListener时,不会调用我的on Message代码

import groovyjarjarantlr.debug.MessageEvent;
import groovyjarjarantlr.debug.MessageListener;
import groovyjarjarantlr.debug.TraceEvent;
import groovyjarjarasm.asm.Context

@Grab(group='net.sf.gtools.jms', module='JmsCategory', version='0.2')
@Grab(group='org.apache.activemq',module = 'activemq-all', version='5.9.0')
@Grab(group="junit", module="junit", version="4.11")

import javax.jms.Session
import javax.naming.InitialContext

import org.apache.activemq.ActiveMQConnectionFactory
import org.apache.ivy.util.Message;

def connFactory = new ActiveMQConnectionFactory("tcp://pass-dev01.unx.sas.com:61616")

def conn = connFactory.createConnection()

def sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE)

def dest = sess.createQueue("pass-dev00.async")

def cons = sess.createConsumer(dest)
javax.jms.MessageListener listener
conn.start()
cons.setMessageListener(listener);

conn.close()

public abstract class JMSMessageListener implements MessageListener {

    public void onMessage(Message message) {

       println("in onmessage")

       def msg1 = cons.receive()
       println(msg1)

       //  def sendMessage() {
       Properties props = new Properties()
       File propsFile = new File('C:/workspace-grails/gateListener/src/gateListener/pass.hypervisor.properties')
       props.load(propsFile.newDataInputStream())
       // println props.getProperty('pass.async.queue')
       def queueName=props.getProperty('pass.send.queue')
       println "sender"+queueName

       use(JmsCategory) {
          def jms = new ActiveMQConnectionFactory('tcp://pass-dev01.unx.sas.com:61616')
          jms.connect { c ->
             c.queue(queueName) { q ->
                def msg = createTextMessage("test")
                q.send(msg)
             }
          }
       }
    }
}

请告诉我是否有人对此有解决方案。

我修复了此问题,导入了错误的库。我必须使用JMS Listener库导入javax.JMS.MessageListener,而不是Groovy Message Listener

我还必须将实现侦听器的类的对象传递为:
cons.setMessageListenernew JMSListener;这是有效的。它调用onMessage

和。。。您从未实例化侦听器变量?我尝试使用此“cons.setMessageListenernew JMSMessageListener.onMessageG1.text;”。无论你尝试什么,它都不会调用消息。侦听器变量实际上是一个接口,我无法实例化它。侦听器行不应该是listener=new JMSMessageListener,而JMSMessageListener不是抽象的吗?您似乎正在设置空消息侦听器。我不是JMS专家,但我希望这会抛出一个NullPointer,我在前面尝试过将其用作:“cons.setMessageListenernew JMSMessageListener;”,它不起作用。它只是在那里等待,从不调用消息。