Using Mule EE Retry Policies

At a project for one of our customers we migrated from Mule CE to Mule EE edition (version 2.2.7). The customer had various good reasons to do this and it offered us new functionalities in Mule ESB to use. One of those ‘new’ things is RetryPolicy for some of the Mule Connectors. I quoted ‘new’ because there is also an open source variant that you can use in the community edition but since the customer paid for it I wanted to use this version that comes with Mule EE out-of-the-box.
To make use of this EE version I performed the normal steps that you would do when you add a new module to you (Maven) Mule project (as I described here). So in short:

  • Add the namespace to the Mule config:

    <mule xmlns=""
  • Add the dependencies to the pom.xml:

  • Add the retry-element to the connector:

     <jms:activemq-connector name="JMSConnector" specification="1.1" dynamicNotification="true"
            <ee:retry-forever-policy frequency="30000"/>

Unfortunately, this seemed not enough since I was getting the following stacktrace:

ERROR 2010-12-22 11:55:34,467 [main] org.mule.config.spring.SpringXmlConfigurationBuilder: Configuration with “org.mule.config.spring.SpringXmlConfigurationBuilder” failed.
org.mule.api.lifecycle.InitialisationException: Initialisation Failure: Configuration problem: Failed to import bean definitions from URL location [classpath:config/rs-global-config.xml]
Offending resource: URL [jar:file:/Users/pascal/.m2/repository/nl/redstream/framework/rs-test-unit/2.3-SNAPSHOT/rs-test-unit-2.3-SNAPSHOT.jar!/config/rs-core-test-config.xml]; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 70 in XML document from class path resource [config/rs-global-config.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element ‘ee:retry-forever-policy’. One of ‘{“;:abstract-retry-policy, “;:service-overrides}’ is expected.
at org.mule.registry.AbstractRegistry.initialise(
at org.mule.config.spring.SpringXmlConfigurationBuilder.createSpringRegistry(
at org.mule.config.spring.SpringXmlConfigurationBuilder.doConfigure(
at org.mule.context.DefaultMuleContextFactory.createMuleContext(
at org.mule.tck.AbstractMuleTestCase.createMuleContext(
at org.mule.tck.AbstractMuleTestCase.setUp(
at junit.framework.TestCase.runBare(
at org.mule.tck.AbstractMuleTestCase.runBare(
at junit.framework.TestResult$1.protect(
at junit.framework.TestResult.runProtected(
at junit.framework.TestSuite.runTest(
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(
at ….. (much much more)
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.401 sec <<< FAILURE!

After some investigation it seemed I missed a dependency:


The problem was that this was not documented (at least not in the places I looked ;-)). Luckily we solved it and is working fine now.

About Pascal Alma

Pascal is a senior software developer and architect. Pascal has been designing and building applications since 2001. He is particularly interested in Open Source toolstack (Mule, Spring Framework, JBoss) and technologies like Web Services, SOA and Cloud technologies. Lately he is having great fun by building iOS apps with Swift. Specialties: JEE AWS XML/XSD/XSLT Web Services/SOA Mule ESB/ WSO2 ESB Maven Cloud Technology Swift/ iOS
This entry was posted in Mule2 and tagged . Bookmark the permalink.