Class JMSConduit

  • All Implemented Interfaces:
    javax.jms.MessageListener, org.apache.cxf.transport.Conduit, org.apache.cxf.transport.Observable

    public class JMSConduit
    extends org.apache.cxf.transport.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, org.apache.cxf.Bus b)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void close​(org.apache.cxf.message.Message msg)  
      protected void finalize()  
      JMSConfiguration getJmsConfig()  
      protected Logger getLogger()  
      protected static boolean isSetReplyTo​(org.apache.cxf.message.Message message)  
      void onMessage​(javax.jms.Message jmsMessage)
      When a message is received on the reply destination the correlation map is searched for the correlationId.
      void prepare​(org.apache.cxf.message.Message message)
      Prepare the message to be sent.
      protected void processReplyMessage​(org.apache.cxf.message.Exchange exchange, javax.jms.Message jmsMessage)
      Process the reply message
      void sendExchange​(org.apache.cxf.message.Exchange exchange, Object request)
      Send the JMS message and if the MEP is not oneway receive the response.
      void setJmsConfig​(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 interface org.apache.cxf.transport.Observable

        getMessageObserver, setMessageObserver
    • Constructor Detail

      • JMSConduit

        public JMSConduit​(org.apache.cxf.ws.addressing.EndpointReferenceType target,
                          JMSConfiguration jmsConfig,
                          org.apache.cxf.Bus b)
    • Method Detail

      • prepare

        public void prepare​(org.apache.cxf.message.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.
        Specified by:
        prepare in interface org.apache.cxf.transport.Conduit
        Throws:
        IOException
      • close

        public void close​(org.apache.cxf.message.Message msg)
                   throws IOException
        Specified by:
        close in interface org.apache.cxf.transport.Conduit
        Overrides:
        close in class org.apache.cxf.transport.AbstractConduit
        Throws:
        IOException
      • sendExchange

        public void sendExchange​(org.apache.cxf.message.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 message
        request - 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:
        onMessage in interface javax.jms.MessageListener
      • processReplyMessage

        protected void processReplyMessage​(org.apache.cxf.message.Exchange exchange,
                                           javax.jms.Message jmsMessage)
                                    throws javax.jms.JMSException
        Process the reply message
        Throws:
        javax.jms.JMSException
      • close

        public void close()
        Specified by:
        close in interface org.apache.cxf.transport.Conduit
        Overrides:
        close in class org.apache.cxf.transport.AbstractConduit
      • getLogger

        protected Logger getLogger()
        Specified by:
        getLogger in class org.apache.cxf.transport.AbstractObservable
      • isSetReplyTo

        protected static boolean isSetReplyTo​(org.apache.cxf.message.Message message)