Show Table of Contents
Chapter 5. Building and Using Services
5.1. Message Listener Configuration Properties
Each
listener configuration needs to supply information for:
- the
registry(see theservice-category,service-name,service-descriptionandEPR-descriptiontag names.) If you set the optionalremove-old-servicetag name totrue, the Enterprise Service Bus will remove any pre-existing service entry from theregistryand then add this new instance. Always use this functionality with care as the entire service will be removed, including every end-point reference. - the instantiation of the
listenerclass (see thelistenerClasstag name). - the endpoint reference that the
listenerwill service. This is transport-specific. The following example corresponds to a Java Message Service endpoint reference (see theconnection-factory,destination-type,destination-name,jndi-type,jndi-URLandmessage-selectortag names). - the
action pipeline. This needs one or more <action> elements, each of which must contain theclasstag name. These will determine whichactionclass will be instantiated for that link in thechain.
<?xml version = "1.0" encoding = "UTF-8"?>
<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
<providers>
<jms-provider name="JBossMQ"
connection-factory="ConnectionFactory"
jndi-URL="jnp://127.0.0.1:1099"
jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
<jms-bus busid="quickstartGwChannel">
<jms-message-filter dest-type="QUEUE"
dest-name="queue/quickstart_helloworld_Request_gw"/>
</jms-bus>
<jms-bus busid="quickstartEsbChannel">
<jms-message-filter dest-type="QUEUE"
dest-name="queue/quickstart_helloworld_Request_esb"/>
</jms-bus>
</jms-provider>
</providers>
<services>
<service category="FirstServiceESB"
name="SimpleListener" description="Hello World">
<listeners>
<jms-listener name="JMS-Gateway"
busidref="quickstartGwChannel" maxThreads="1"
is-gateway="true"/>
<jms-listener name="helloWorld"
busidref="quickstartEsbChannel" maxThreads="1"/>
</listeners>
<actions>
<action name="action1" class="org.jboss.soa.esb.samples.
quickstart.helloworld.MyJMSListenerAction"
process="displayMessage" />
<action name="notificationAction"
class="org.jboss.soa.esb.actions.Notifier">
<property name="okMethod" value="notifyOK" />
<property name="notification-details">
<NotificationList type="ok">
<target class="NotifyConsole"/>
</NotificationList>
<NotificationList type="err">
<target class="NotifyConsole"/>
</NotificationList>
</property>
</action>
</actions>
</service>
</services>
</jbossesb>
This example configuration instantiates a
listener object (the jms-listener tag), which will wait for those incoming ESB messages that are serialized within an interface. It then delivers each incoming message to an action pipeline consisting of two steps (<action> elements):
- action1:
MyJMSListenerAction(an example follows). - notificationAction: an
org.jboss.soa.esb.actions.SystemPrintlnclass.
The reason there are two listeners is that the gateway listener is the ESB-unaware listener and its role is to encapsulate the JMS message in the ESB message used throughout the enterprise service bus.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.