Class JMSConduit

java.lang.Object
org.apache.cxf.transport.AbstractObservable
org.apache.cxf.transport.AbstractConduit
org.apache.cxf.transport.jms.JMSConduit
All Implemented Interfaces:
jakarta.jms.MessageListener, org.apache.cxf.transport.Conduit, org.apache.cxf.transport.Observable

public class JMSConduit extends org.apache.cxf.transport.AbstractConduit implements jakarta.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

    Modifier and Type
    Method
    Description
    void
     
    void
    close(org.apache.cxf.message.Message msg)
     
    protected void
     
     
    protected Logger
     
    protected static boolean
    isSetReplyTo(org.apache.cxf.message.Message message)
     
    void
    onMessage(jakarta.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, jakarta.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
     

    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 Details

    • JMSConduit

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

    • 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(jakarta.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 jakarta.jms.MessageListener
    • processReplyMessage

      protected void processReplyMessage(org.apache.cxf.message.Exchange exchange, jakarta.jms.Message jmsMessage) throws jakarta.jms.JMSException
      Process the reply message
      Throws:
      jakarta.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
    • getJmsConfig

      public JMSConfiguration getJmsConfig()
    • setJmsConfig

      public void setJmsConfig(JMSConfiguration jmsConfig)
    • isSetReplyTo

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

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable