org.springframework.jms.core

## Interface ProducerCallback<T>

-     public interface ProducerCallback<T>

  Callback for sending a message to a JMS destination.

  To be used with JmsTemplate's callback methods that take a ProducerCallback argument, often implemented as an anonymous inner class.

  The typical implementation will perform multiple operations on the supplied JMS `Session` and `MessageProducer`. When used with a 1.0.2 provider, you need to downcast to the appropriate domain implementation, either `QueueSender` or `TopicPublisher`, to actually send a message.

  Since:
    1.1
  Author:
    Mark Pollack
  See Also:
    `JmsTemplate.execute(ProducerCallback)`, `JmsTemplate.execute(javax.jms.Destination, ProducerCallback)`, `JmsTemplate.execute(String, ProducerCallback)`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `doInJms(Session session, MessageProducer producer)` Perform operations on the given `Session` and `MessageProducer`.

- - ### Method Detail

    - #### doInJms

          T doInJms(Session session,
                  MessageProducer producer)
                    throws JMSException

      Perform operations on the given `Session` and `MessageProducer`.

      The message producer is not associated with any destination unless when specified in the JmsTemplate call.

      Parameters:
        `session` - the JMS `Session` object to use
        `producer` - the JMS `MessageProducer` object to use
      Returns:
        a result object from working with the `Session`, if any (can be `null`)
      Throws:
        `JMSException` - if thrown by JMS API methods