Este conteúdo não está disponível no idioma selecionado.
Chapter 5. Building and Using Services
5.1. Message Listener Configuration Properties Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
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.