Package org.apache.cxf.transport.jms
Class JMSConduit
- java.lang.Object
-
- org.apache.cxf.transport.AbstractObservable
-
- org.apache.cxf.transport.AbstractConduit
-
- org.apache.cxf.transport.jms.JMSConduit
-
- All Implemented Interfaces:
javax.jms.MessageListener,Conduit,Observable
public class JMSConduit extends AbstractConduit implements javax.jms.MessageListener
JMSConduit is instantiated by the JMSTransportFactory which is selected by a client if the transport protocol starts with "jms:". JMSConduit converts CXF Messages to JMS Messages and sends the request over a queue or a topic. If the Exchange is not one way it then receives the response and converts it to a CXF Message. This is then provided in the Exchange and also sent to the IncomingObserver.
-
-
Field Summary
-
Fields inherited from class org.apache.cxf.transport.AbstractConduit
target
-
Fields inherited from class org.apache.cxf.transport.AbstractObservable
incomingObserver
-
-
Constructor Summary
Constructors Constructor Description JMSConduit(org.apache.cxf.ws.addressing.EndpointReferenceType target, JMSConfiguration jmsConfig, Bus b)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the conduit.voidclose(Message msg)Close the connections associated with the messageprotected voidfinalize()JMSConfigurationgetJmsConfig()protected LoggergetLogger()protected static booleanisSetReplyTo(Message message)voidonMessage(javax.jms.Message jmsMessage)When a message is received on the reply destination the correlation map is searched for the correlationId.voidprepare(Message message)Prepare the message to be sent.protected voidprocessReplyMessage(Exchange exchange, javax.jms.Message jmsMessage)Process the reply messagevoidsendExchange(Exchange exchange, Object request)Send the JMS message and if the MEP is not oneway receive the response.voidsetJmsConfig(JMSConfiguration jmsConfig)-
Methods inherited from class org.apache.cxf.transport.AbstractConduit
getTarget, toString
-
Methods inherited from class org.apache.cxf.transport.AbstractObservable
activate, deactivate, getMessageObserver, getTargetReference, getTargetReference, setMessageObserver
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.cxf.transport.Observable
getMessageObserver, setMessageObserver
-
-
-
-
Constructor Detail
-
JMSConduit
public JMSConduit(org.apache.cxf.ws.addressing.EndpointReferenceType target, JMSConfiguration jmsConfig, Bus b)
-
-
Method Detail
-
prepare
public void prepare(Message message) throws IOException
Prepare the message to be sent. The message will be sent after the caller has written the payload to the OutputStream of the message and called the stream's close method. In the JMS case the JMSOutputStream will then call back the sendExchange method of this class. Prepare the message for sending. This will typically involve setting an OutputStream on the message, but it may do nothing at all.- Specified by:
preparein interfaceConduit- Parameters:
message- the message to be sent.- Throws:
IOException
-
close
public void close(Message msg) throws IOException
Description copied from interface:ConduitClose the connections associated with the message- Specified by:
closein interfaceConduit- Overrides:
closein classAbstractConduit- Parameters:
msg- for which content should be closed.- Throws:
IOException
-
sendExchange
public void sendExchange(Exchange exchange, Object request)
Send the JMS message and if the MEP is not oneway receive the response.- Parameters:
exchange- the Exchange containing the outgoing messagerequest- the payload of the outgoing JMS message
-
onMessage
public void onMessage(javax.jms.Message jmsMessage)
When a message is received on the reply destination the correlation map is searched for the correlationId. If it is found the message is converted to a CXF message and the thread sending the request is notified- Specified by:
onMessagein interfacejavax.jms.MessageListener
-
processReplyMessage
protected void processReplyMessage(Exchange exchange, javax.jms.Message jmsMessage) throws javax.jms.JMSException
Process the reply message- Throws:
javax.jms.JMSException
-
close
public void close()
Description copied from class:AbstractConduitClose the conduit.- Specified by:
closein interfaceConduit- Overrides:
closein classAbstractConduit
-
getLogger
protected Logger getLogger()
- Specified by:
getLoggerin classAbstractObservable- Returns:
- the logger to use
-
getJmsConfig
public JMSConfiguration getJmsConfig()
-
setJmsConfig
public void setJmsConfig(JMSConfiguration jmsConfig)
-
isSetReplyTo
protected static boolean isSetReplyTo(Message message)
-
-