mulemule-studioopenmq

connecting Mule ESB to OpenMQ broker


I'm trying to connect Mule ESB to an existing OpenMQ broker. Building from the mulesoft docs for openmq integration, I have the following flow;

<jms:custom-connector name="Custom_JMS" specification="1.1" 
                      class="com.sun.messaging.ConnectionFactory" 
                      validateConnections="true" doc:name="Custom JMS"/>

<flow name="EchoFlow" doc:name="EchoFlow">

    <jms:inbound-endpoint doc:name="JMS"
                          connector-ref="Custom_JMS" responseTimeout="1000" 
                          topic="mytopic"/>

    <echo-component doc:name="Echo"/>
    <logger message="#[message:payload]" doc:name="Logger"/>
</flow>

However, I get an error at runtime;

[02-26 10:54:08] ERROR DefaultMuleApplication [main]: null
org.springframework.beans.NotWritablePropertyException: Invalid property 'acknowledgementMode' of bean class [com.sun.messaging.ConnectionFactory]: Bean property 'acknowledgementMode' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

I have the feeling several elements have been left out of the example. Can someone tell me what's missing?


Solution

  • AFAIK custom-connector needs a class that extends org.mule.transport.jms.JmsConnector. Try this instead:

    <spring:bean name="connectionFactory" class="com.sun.messaging.ConnectionFactory"/>
    
    <jms:connector name="JMSConnector"
        connectionFactory-ref="connectionFactory"
        specification="1.1"/>