1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.submit.transports.jms;
14
15 import javax.jms.JMSException;
16 import javax.jms.Message;
17 import javax.jms.MessageConsumer;
18 import javax.jms.Queue;
19 import javax.jms.Session;
20
21 import com.eviware.soapui.SoapUI;
22 import com.eviware.soapui.model.iface.Request;
23 import com.eviware.soapui.model.iface.Response;
24 import com.eviware.soapui.model.iface.SubmitContext;
25
26 public class HermesJmsRequestSendReceiveTransport extends HermesJmsRequestTransport
27 {
28
29 public Response execute( SubmitContext submitContext, Request request, long timeStarted ) throws Exception
30 {
31 Session queueSession = null;
32 JMSConnectionHolder jmsConnectionHolder = null;
33 try
34 {
35 init( submitContext, request );
36 jmsConnectionHolder = new JMSConnectionHolder( jmsEndpoint, hermes, false, clientID, username, password );
37
38
39 queueSession = jmsConnectionHolder.getSession();
40
41
42 Queue queueSend = jmsConnectionHolder.getQueue( jmsConnectionHolder.getJmsEndpoint().getSend() );
43 Queue queueReceive = jmsConnectionHolder.getQueue( jmsConnectionHolder.getJmsEndpoint().getReceive() );
44
45 Message messageSend = messageSend( submitContext, request, queueSession, jmsConnectionHolder.getHermes(),
46 queueSend );
47
48 MessageConsumer messageConsumer = queueSession.createConsumer( queueReceive, messageSelector );
49
50 return makeResponse( submitContext, request, timeStarted, messageSend, messageConsumer );
51 }
52 catch( JMSException jmse )
53 {
54 return errorResponse( submitContext, request, timeStarted, jmse );
55 }
56 catch( Throwable t )
57 {
58 SoapUI.logError( t );
59 }
60 finally
61 {
62 closeSessionAndConnection( jmsConnectionHolder != null ? jmsConnectionHolder.getConnection() : null,queueSession );
63 }
64 return null;
65 }
66 }