Forum Discussion

Aaronliu's avatar
Aaronliu
Frequent Contributor
13 years ago

how can I get messge from topic

Dear All,
is there a way to get message from topic?I'm trying to use the groovy script to access topic. sorry....i am not sure how to configure script. also attempt to browse queue through sample script provided online, that is ok. but for Topic?would you help me try that?

btw, i have configured topic through Tibco EMS. please explain your ideas to me and if more information do not hesitate to contact me.

thanks,
Aaron

1 Reply

  • Aaronliu's avatar
    Aaronliu
    Frequent Contributor
    import com.eviware.soapui.impl.wsdl.submit.transports.jms.JMSConnectionHolder
    import com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils
    import com.eviware.soapui.impl.wsdl.submit.transports.jms.JMSEndpoint
    import hermes.Hermes
    import javax.jms.*

    /*get jmsEndpoint*/
    def jmsEndpoint = new JMSEndpoint("jms://TibcoEMS::-::queue_TESTING_DUMMY_OUTPUT_MESSAGE");

    /*static hermes.Hermes //Projecct:ACARASDownlinkMessageTestProject sessionName:TibcoEMS*/
    def hermes = HermesUtils.getHermes( context.testCase.testSuite.project, jmsEndpoint.sessionName)

    /*parameters: jmsEndpoint,hermes.Hermes,isTopicDomain,clientID,username,password*/
    def jmsConnectionHolder = new JMSConnectionHolder( jmsEndpoint, hermes, false, null ,null ,null);

    /*javax.jms.Session*/
    Session queueSession = jmsConnectionHolder.getSession();

    /*getQueue: return queue by name*/
    Queue queueBrowse = jmsConnectionHolder.getQueue( jmsConnectionHolder.getJmsEndpoint().getReceive() );

    QueueBrowser qb = queueSession.createBrowser(queueBrowse);
    Enumeration en= qb.getEnumeration();
    while(en.hasMoreElements()){
    TextMessage tm = (TextMessage)en.nextElement();
    log.info tm.getText()
    }
    jmsConnectionHolder.closeAll() /* don't forget to close session and connection*/