Hi John,

this looks its a question of the Mule user group

cheers,

Rob
On 30 Jan 2007, at 22:59, Fausey,Jonathan wrote:

I am trying to use a BridgeComponent UMO with filtering outbound routers
to route messages based on one of the message properties.  The
configuration file for the BridgeComponent is as follows:

<!DOCTYPE mule-configuration PUBLIC "-//MuleSource //DTD
mule-configuration XML V1.0//EN"

"http://mule.mulesource.org/dtds/mule-configuration.dtd";>
<mule-configuration id="Router1" version="1.0">
    <description>
        A component to route messages to the next destination in the
message header.
        Wired to JMS queues.
    </description>

    <connector name="jmsConnector"
className="org.mule.providers.jms.JmsConnector">
        <properties>
            <property name="specification" value="1.1"/>
            <property name="connectionFactoryJndiName"
value="ConnectionFactory"/>
            <property name="jndiInitialFactory"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
            <map name="connectionFactoryProperties">
                <property name="brokerURL" value="tcp://foo:61616"/>
            </map>
        </properties>
    </connector>

    <transformers>
        <transformer name="SetMessageRoutingProperties"

className="org.oclc.mule.transformers.SetMessageRoutingProperties"

returnClass="org.apache.activemq.command.ActiveMQMessage"/>
    </transformers>

    <model name="Router1">
        <mule-descriptor name="Router"

implementation="org.mule.components.simple.BridgeComponent">

            <inbound-router>
                <endpoint address="jms://Q.MODS_IN"
transformers="SetMessageRoutingProperties"/>
            </inbound-router>

            <outbound-router>
                <catch-all-strategy
className="org.mule.routing.ForwardingCatchAllStrategy">
                    <endpoint address="jms://error.queue"/>
                </catch-all-strategy>

                <router
className="org.mule.routing.outbound.FilteringOutboundRouter">
                    <endpoint address="jms://Q.MOD_TITLE"/>
                    <filter
className="org.mule.routing.filters.MessagePropertyFilter"
                            expression="destination=MOD_TITLE"/>
                </router>

                <router
className="org.mule.routing.outbound.FilteringOutboundRouter">
                    <endpoint address="jms://Q.MOD_DATE"/>
                    <filter
className="org.mule.routing.filters.MessagePropertyFilter"
                            expression="destination=MOD_DATE"/>
                </router>

                <router
className="org.mule.routing.outbound.FilteringOutboundRouter">
                    <endpoint address="jms://Q.MODS_OUT"/>
                    <filter
className="org.mule.routing.filters.MessagePropertyFilter"
                            expression="destination=MODS_OUT"/>
                </router>

                <router
className="org.mule.routing.outbound.FilteringOutboundRouter">
                    <endpoint address="smtp://[EMAIL PROTECTED]"/>
                    <filter expectedType="java.lang.Exception"

className="org.mule.routing.filters.PayloadTypeFilter"/>
                </router>
            </outbound-router>
        </mule-descriptor>
    </model>
</mule-configuration>

The SetMessageRoutingProperties transformer runs (produces console
entries) and returns an instance of
org.apache.activemq.command.ActiveMQMessage, which implements
javax.jms.Message, but then something goes wrong with the outbound
routing, producing the following messages:

INFO  2007-01-30 17:43:31,105
[jmsConnector.jmsConnector.dispatchers.dispatcher.1]
org.mule.providers.jms.JmsMessageDispatcher: Successfully connected to:
jms://error.queue
ERROR 2007-01-30 17:43:31,121
[jmsConnector.jmsConnector.dispatchers.dispatcher.1]
org.mule.impl.DefaultExceptionStrategy:
********************************************************************** **
********
Message               : Message is not a JMS message, it is of type
"java.lang.String". Check the transformer for this Connector
"jmsConnector". Failed to route event via endpoint:
[EMAIL PROTECTED],
endpointUri=jms://error.queue,
transformer=Transformer{name='JMSMessageToObject', returnClass=false,
returnClass=false, sourceTypes=[interface javax.jms.Message, interface
javax.jms.Message]}, name='jms.error.queue', type='senderAndReceiver',
properties={}, transactionConfig=Transaction{factory=null, action=NONE,
timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=false,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of
type: org.apache.activemq.command.ActiveMQTextMessage
Type                  : org.mule.umo.provider.DispatchException
Code                  : MULE_ERROR-42999
JavaDoc               :
http://mule.codehaus.org/docs/apidocs/org/mule/umo/provider/ DispatchExce
ption.html
Payload               : ActiveMQTextMessage {commandId = 6,
responseRequired = true, messageId =
ID:devapp1.dev.oclc.org-46621-1170197003418-1:0:1:1:1,
originalDestination = null, originalTransactionId = null, producerId =
ID:devapp1.dev.oclc.org-46621-1170197003418-1:0:1:1, destination =
queue://Q.MODS_IN, transactionId = null, expiration = 0, timestamp =
1170197003853, arrival = 0, correlationId = null, replyTo = null,
persistent = true, type = null, priority = 4, groupID = null,
groupSequence = 0, targetConsumerId = null, compressed = false, userID =
null, content = null, marshalledProperties =
[EMAIL PROTECTED], dataStructure = null,
redeliveryCounter = 0, size = 0, properties =
{destinations=MOD_DATE,MODS_OUT, destination=MOD_TITLE,
MULE_SESSION=SUQ9NGFjNWMwZjktYjBiMy0xMWRiLWJmNjgtZjM3ZTY1NzI1OGE2,
job_id=devapp1.dev.oclc.org/cdf-mod-client_valpha/ 20070130-17:43:23.759-
0500, originator=cdf-mod-client_valpha, MULE_ENDPOINT=jms://Q.MODS_IN,
origin=devapp1.dev.oclc.org, start_time=20070130-17:43:23.759-0500},
readOnlyProperties = true, readOnlyBody = true, droppable = false, text
= [snipped]}
********************************************************************** **
********
Exception stack is:
1. Message is not a JMS message, it is of type "java.lang.String". Check the transformer for this Connector "jmsConnector". Failed to route event
via endpoint:
[EMAIL PROTECTED],
endpointUri=jms://error.queue,
transformer=Transformer{name='JMSMessageToObject', returnClass=false,
returnClass=false, sourceTypes=[interface javax.jms.Message, interface
javax.jms.Message]}, name='jms.error.queue', type='senderAndReceiver',
properties={}, transactionConfig=Transaction{factory=null, action=NONE,
timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=false,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of
type: org.apache.activemq.command.ActiveMQTextMessage
(org.mule.umo.provider.DispatchException)
  org.mule.providers.jms.JmsMessageDispatcher:168
(http://mule.codehaus.org/docs/apidocs/org/mule/umo/provider/ DispatchExc
eption.html)
********************************************************************** **
********
Root Exception stack trace:
org.mule.umo.provider.DispatchException: Message is not a JMS message,
it is of type "java.lang.String". Check the transformer for this
Connector "jmsConnector". Failed to route event via endpoint:
[EMAIL PROTECTED],
endpointUri=jms://error.queue,
transformer=Transformer{name='JMSMessageToObject', returnClass=false,
returnClass=false, sourceTypes=[interface javax.jms.Message, interface
javax.jms.Message]}, name='jms.error.queue', type='senderAndReceiver',
properties={}, transactionConfig=Transaction{factory=null, action=NONE,
timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=false,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of
type: org.apache.activemq.command.ActiveMQTextMessage
        at
org.mule.providers.jms.JmsMessageDispatcher.dispatchMessage (JmsMessageDi
spatcher.java:168)
        at
org.mule.providers.jms.JmsMessageDispatcher.doDispatch (JmsMessageDispatc
her.java:69)
        at
org.mule.providers.AbstractMessageDispatcher$Worker.run (AbstractMessageD
ispatcher.java:592)
at org.mule.impl.work.WorkerContext.run(WorkerContext.java: 317)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor $Worker
.runTask(ThreadPoolExecutor.java:650)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor $Worker
.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)

********************************************************************** **
********

I'm not connecting the dots.  What have I done wrong?

-Jon


Reply via email to