[mule-user] connector exception strategy

32 views
Skip to first unread message

Aravind...@equifax.com

unread,
May 17, 2007, 10:03:27 AM5/17/07
to us...@mule.codehaus.org

Helo all,

I have the following flow

Client --> UMO1 --> UMO2 --> UMo3

UMO3 talks to external WebService using Axis Connector. If the WS is unreachable for some reason (connection timoeout etc), I have the catch that exception and build a custom response xml to be sent to the client. I'd appreciate if someone can help me how to do this.

I tried setting up an exception strategy in the following way, but it did not work! I am not sure whats wrong with the following config.

<connector name="axisConnector" className="org.mule.providers.soap.axis.AxisConnector">
        <exception-strategy className="org.mule.impl.DefaultExceptionStrategy">
            <endpoint address="file:///tmp/error">
                <properties>
                    <property name="outputPattern" value="Error.txt"/>
                </properties>
          </endpoint>
        </exception-strategy>
</connector>


Error
------
INFO [org.mule.MuleManager] Creating new MuleManager instance
 INFO [org.mule.MuleManager] Transformer FFFToDSD has been initialised successfully
 INFO [org.mule.MuleManager] Transformer DSDToXML has been initialised successfully
 INFO [org.mule.MuleManager] Transformer XMLToFFF has been initialised successfully
 INFO [org.mule.MuleManager] Transformer CDToDSD has been initialised successfully
 INFO [org.mule.config.builders.TransformerReference] Setting transformer: FFFToDSD on org.mule.impl.endpoint.MuleEndpoint.transformer
 INFO [org.mule.config.builders.TransformerReference] Setting transformer: XMLToFFF on org.mule.impl.endpoint.MuleEndpoint.responseTransformer
 INFO [org.mule.config.builders.TransformerReference] Setting transformer: DSDToXML on org.mule.impl.endpoint.MuleEndpoint.transformer
 INFO [org.mule.providers.soap.axis.AxisConnector] Initialising: AxisConnector{this=20f443, started=false, initialised=false, name='axisConnector', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[axis, axis:http, axis:https, axis:servlet, axis:vm, axis:jms, axis:xmpp, axis:smtp, axis:smtps, axis:pop3, axis:pop3s, axis:imap, axis:imaps, axis:ssl, axis:tcp], serviceOverrides=null}
 INFO [org.mule.impl.DefaultExceptionStrategy] Initialising exception listener: org.mule.impl.DefaultExceptionStrategy@1474ea
 INFO [org.mule.providers.file.FileConnector] Initialising: FileConnector{this=2a6ff, started=false, initialised=false, name='connector.file.0', disposed=false, numberOfConcurrentTransactedReceivers=4, createMultipleTransactedReceivers=true, connected=false, supportedProtocols=[file], serviceOverrides=null}
 INFO [org.mule.impl.DefaultExceptionStrategy] Initialising exception listener: org.mule.impl.DefaultExceptionStrategy@7124af
MuleManager Failed to initialise (org.mule.config.ConfigurationException)
org.mule.config.ConfigurationException: MuleManager Failed to initialise (org.mule.config.ConfigurationException)
        at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:216)
        at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:187)
        at com.mule.usage.JavaEmbedded.init(JavaEmbedded.java:14)
        at com.mule.usage.JavaEmbedded.main(JavaEmbedded.java:29)
Caused by: org.mule.config.ConfigurationException: MuleManager Failed to initialise
        at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:255)
        at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:211)
        ... 3 more
Caused by: java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
        at java.util.HashMap$ValueIterator.next(Unknown Source)
        at org.mule.MuleManager.initialiseConnectors(MuleManager.java:954)
        at org.mule.MuleManager.initialise(MuleManager.java:775)
        at org.mule.MuleManager.start(MuleManager.java:883)
        at org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:250)
        ... 4 more

Marie Claire Rizzo

unread,
May 24, 2007, 10:31:12 AM5/24/07
to us...@mule.codehaus.org
Hi

There seems to be nothing wrong with your connector configuration. I
tested it out on my end and it works fine. At which point do you get
this error? At start-up or when Axis causes an exception? Secondly, if
you provide your complete configuration, it would give us something more
to go on.

Regards
Marie Rizzo

> _org.mule.config.ConfigurationException_: MuleManager Failed to
> initialise (org.mule.config.ConfigurationException)
> at
> org.mule.config.builders.MuleXmlConfigurationBuilder.configure(_MuleXmlConfigurationBuilder.java:216_)
>
> at
> org.mule.config.builders.MuleXmlConfigurationBuilder.configure(_MuleXmlConfigurationBuilder.java:187_)
>
> at com.mule.usage.JavaEmbedded.init(_JavaEmbedded.java:14_)
> at com.mule.usage.JavaEmbedded.main(_JavaEmbedded.java:29_)
> Caused by: _org.mule.config.ConfigurationException_: MuleManager
> Failed to initialise
> at
> org.mule.config.builders.MuleXmlConfigurationBuilder.configure(_MuleXmlConfigurationBuilder.java:255_)
>
> at
> org.mule.config.builders.MuleXmlConfigurationBuilder.configure(_MuleXmlConfigurationBuilder.java:211_)
>
> ... 3 more
> Caused by: _java.util.ConcurrentModificationException_


> at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
> at java.util.HashMap$ValueIterator.next(Unknown Source)
> at

> org.mule.MuleManager.initialiseConnectors(_MuleManager.java:954_)
> at org.mule.MuleManager.initialise(_MuleManager.java:775_)
> at org.mule.MuleManager.start(_MuleManager.java:883_)
> at
> org.mule.config.builders.MuleXmlConfigurationBuilder.configure(_MuleXmlConfigurationBuilder.java:250_)
>
> ... 4 more

--

Marie Rizzo
Ricston Consulting
Tel: +356 21 334457
Fax: +356 21 334457
Skype: marie.rizzo


---------------------------------------------------------------------
To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Alex Mountney

unread,
Oct 9, 2007, 6:05:57 AM10/9/07
to us...@mule.codehaus.org

Hi

I have a similar problem with Web Service to synchronous JMS. My
configuration has a JMS connector and a Axis connector both with exception
strategies. On startup I get a ConcurrentModificationException. If I remove
the axis connector or remove the JMS exception strategy then the exception
does not occur. I'm using Mule 1.4.3. Any help would be much appreciated.

Config:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mule-configuration PUBLIC "-//MuleSource //DTD mule-configuration
XML V1.0//EN"
"http://mule.mulesource.org/dtds/mule-configuration.dtd">

<mule-configuration id="Mule_Echo_Axis_Sample" version="1.0">

<connector name="jmsConnector"
className="org.mule.providers.jms.JmsConnector">
<properties>
<property name="specification" value="1.0.2b" />
<property name="hostName" value="myMQServer" />
<property name="transportType" value="1" />
<property name="name" value="myMQConnector" />
<property name="jndiInitialFactory"
value="com.sun.jndi.fscontext.RefFSContextFactory" />
<property name="jndiProviderUrl"
value="file:/C:/JNDI-Directory" />
<property name="connectionFactoryJndiName"
value="MQFACTORY" />

<property name="jndiDestinations" value="true" />
<property name="forceJndiDestinations" value="true" />
<property name="persistentDelivery" value="true" />
<property name="honorQosHeaders" value="true" />
</properties>

<exception-strategy className="org.mule.impl.DefaultExceptionStrategy">
<endpoint address="vm://jmsErrorHandler" />
</exception-strategy>
</connector>

<connector name="axisConnector"
className="org.mule.providers.soap.axis.AxisConnector">
<exception-strategy className="org.mule.impl.DefaultExceptionStrategy">

<endpoint address="vm://axisErrorHandler" />
</exception-strategy>
</connector>

<transformers>
<transformer name="HttpRequestToSoapRequest"
className="org.mule.providers.soap.transformers.HttpRequestToSoapRequest"
/>

<transformer name="JMSMessageToObject"
className="org.mule.providers.jms.transformers.JMSMessageToObject" />

<transformer name="ObjectToJMSMessage"
className="org.mule.providers.jms.transformers.ObjectToJMSMessage" />

<transformer name="StringToByteArray"
className="org.mule.transformers.simple.StringToByteArray" />

<transformer name="ByteArrayToString"
className="org.mule.transformers.simple.ByteArrayToString" />

<transformer name="ExceptionToString"
className="org.mule.samples.hello.ExceptionToString" />
</transformers>

<model name="POC">

<exception-strategy className="org.mule.impl.DefaultExceptionStrategy">
<endpoint address="vm://systemErrorHandler" />
</exception-strategy>

<mule-descriptor name="Service1"
implementation="org.mule.components.simple.EchoComponent">

<inbound-router>
<endpoint address="axis:http://localhost:65081/services"
remoteSync="true" transformers="HttpRequestToSoapRequest"
responseTransformers="JMSMessageToObject ByteArrayToString" />
<endpoint address="vm://echo" remoteSync="true"
transformers="HttpRequestToSoapRequest"
responseTransformers="JMSMessageToObject ByteArrayToString" />
</inbound-router>

<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="jms://CCMI.REQUEST"
transformers="StringToByteArray ObjectToJMSMessage">
<properties>
<property name="JMSReplyTo"
value="CCMI.RESPONSE" />
</properties>
</endpoint>
</router>
</outbound-router>

<response-router timeout="80000">
<endpoint address="jms://CCMI.RESPONSE" />
<router
className="org.mule.routing.response.SingleResponseRouter" />
</response-router>

<exception-strategy
className="org.mule.impl.DefaultExceptionStrategy">
<endpoint address="vm://systemErrorHandler" />
</exception-strategy>

</mule-descriptor>

<mule-descriptor name="UserErrorHandler"
implementation="org.mule.components.simple.BridgeComponent">
<inbound-router>
<endpoint address="vm://userErrorHandler"
responseTransformers="ExceptionToString" />
</inbound-router>
</mule-descriptor>

<mule-descriptor name="SystemErrorHandler"
implementation="org.mule.components.simple.BridgeComponent">
<inbound-router>
<endpoint address="vm://systemErrorHandler" />
</inbound-router>
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="file:///c:/mule" />
</router>
</outbound-router>
</mule-descriptor>

<mule-descriptor name="JMSErrorHandler"
implementation="org.mule.components.simple.BridgeComponent">
<inbound-router>
<endpoint address="vm://jmsErrorHandler" />
</inbound-router>
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="file:///c:/mule" />
</router>
</outbound-router>
</mule-descriptor>

<mule-descriptor name="AxisErrorHandler"
implementation="org.mule.components.simple.BridgeComponent">
<inbound-router>
<endpoint address="vm://axisErrorHandler" />
</inbound-router>
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="file:///c:/mule" />
</router>
</outbound-router>
</mule-descriptor>

</model>

</mule-configuration>

Error:

................
2007-10-09 11:02:50,989 [main] INFO org.mule.impl.DefaultExceptionStrategy
- Initialising exception listener:
org.mule.impl.DefaultExceptionStrategy@bad8a8
2007-10-09 11:02:51,005 [main] DEBUG org.mule.config.i18n.MessageFactory -
Loading resource bundle: META-INF.services.org.mule.i18n.core-messages for
locale en_GB
2007-10-09 11:02:51,020 [main] DEBUG org.mule.config.i18n.MessageFactory -
Loading resource bundle: META-INF.services.org.mule.i18n.core-messages for
locale en_GB
2007-10-09 11:02:51,114 [main] DEBUG org.mule.config.i18n.MessageFactory -
Loading resource bundle: META-INF.services.org.mule.i18n.core-messages for
locale en_GB
2007-10-09 11:02:51,114 [main] DEBUG org.mule.config.i18n.MessageFactory -
Loading resource bundle: META-INF.services.org.mule.i18n.core-messages for
locale en_GB
2007-10-09 11:02:51,114 [main] ERROR org.mule.MuleServer -
********************************************************************************
Message : MuleManager Failed to initialise
Type : org.mule.config.ConfigurationException
Code : MULE_ERROR-13040
JavaDoc :
http://mule.mulesource.org/docs/apidocs/org/mule/config/ConfigurationException.html
********************************************************************************
Exception stack is:
1. null (java.util.ConcurrentModificationException)
java.util.HashMap$HashIterator:841
(http://java.sun.com/j2se/1.5.0/docs/api/java/util/ConcurrentModificationException.html)
2. MuleManager Failed to initialise (org.mule.config.ConfigurationException)
org.mule.config.builders.MuleXmlConfigurationBuilder:283
(http://mule.mulesource.org/docs/apidocs/org/mule/config/ConfigurationException.html)
********************************************************************************
Root Exception stack trace:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:841)
at java.util.HashMap$ValueIterator.next(HashMap.java:871)
at org.mule.MuleManager.initialiseConnectors(MuleManager.java:939)
at org.mule.MuleManager.initialise(MuleManager.java:767)
at org.mule.MuleManager.start(MuleManager.java:875)
at
org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:278)
at
org.mule.config.builders.MuleXmlConfigurationBuilder.configure(MuleXmlConfigurationBuilder.java:218)
at org.mule.MuleServer.initialize(MuleServer.java:294)
at org.mule.MuleServer.run(MuleServer.java:207)
at org.mule.MuleServer.start(MuleServer.java:195)
at org.mule.MuleServer.main(MuleServer.java:166)

********************************************************************************
................


--
View this message in context: http://www.nabble.com/connector-exception-strategy-tf3772107.html#a13112717
Sent from the Mule - User mailing list archive at Nabble.com.

Reply all
Reply to author
Forward
0 new messages