JMS

JNDI Context (jndi.properties)
QueueConnectionFactory
QueueConnection
QueueSession
QueueSender
QueueSender could send message

Don't you hate this? To send a message, we have go through all these....