Great to hear that it worked so well. If you want to take the time and build an example this will surely be added to the distro.

Did you also route the cxf service over a camel route using the camel transport for cxf? This is not visible in the excerpt you send.

Christian


Am 08.02.2011 17:40, schrieb Jeffrey Knight:
On Tue, Feb 8, 2011 at 3:02 AM, Christian Schneider
<ch...@die-schneider.net>  wrote:
Hi Jeffrey,
[...]
So if you only want one source of jms configuration then you best chance is
to use the camel config. On the other hand you can also have it redundant
and use properties for each param you want to configure.

Christian

Vielen Dank, Christian.

Taking your advice, I swapped out CXF's
org.apache.cxf.transport.jms.JMSConfiguration for Camel's
org.apache.camel.component.jms.JmsConfiguration.

Because it's hard to tell how much CXF's JMSConfiguration and Camel's
JmsConfiguration have in common, I expected this to be very painful.
But it was surprisingly easy.

I'm posting my config below, because I haven't seen too many examples
of CXF and / or Camel configurations with JNDI.

Here is my applicationContext.xml configuration for Camel to
communicate with a message queue (IBM MQ) via resources defined in
WebSphere.

Would it be helpful to have this rolled up into a sample for the Camel
distribution since almost all examples that ship with Camel are
examples of direct connection to ActiveMQ rather than via JNDI
resources (e.g. WebSphere) ?

<beans ...>


        <camelContext xmlns="http://camel.apache.org/schema/spring";>



                [... more camel route config here ...]


                <route>

                        <from uri="direct:putModifiedMessageOnQueue"/>

                        [... some more steps here ...]
                        <!-- This will output the message in
SystemOut.log - handy for debugging (make sure your log4j  has
"myLogger") -->
                        <to uri="log:myLogger" />
                         <!-- Note that the queue is the
JNDI-configured name as it appears in WAS. -->
                        <to uri="ibmmq://queue:jms/My_Jndi_Queue_Name" />
                </route>

        </camelContext>



        <bean id="ibmmq" class="org.apache.camel.component.jms.JmsComponent">

                <property name="configuration" ref="jmsConfig"/>

        </bean>




        <jee:jndi-lookup id="myTargetConnectionFactory"
jndi-name="jms/My_Factory_Jndi_Name"/>

        <bean id="jmsDestResolver"
class="org.springframework.jms.support.destination.JndiDestinationResolver"/>



        <bean id="myConnectionFactory"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">

                <property name="targetConnectionFactory" 
ref="myTargetConnectionFactory"/>

                <property name="username" value=""/>

                <property name="password" value=""/>

        </bean>




        <!-- Was using CXF jms config:
          <bean id="jmsConfig"
class="org.apache.cxf.transport.jms.JMSConfiguration">

           but switched to Camel's jms config. Compare:
            * http://cxf.apache.org/docs/using-the-jmsconfigfeature.html
           with:
            * http://camel.apache.org/jms.html
          -->
        <bean id="jmsConfig" 
class="org.apache.camel.component.jms.JmsConfiguration">



                <!-- The following properties ARE in
org.apache.cxf.transport.jms.JMSConfiguration but NOT in

                org.apache.camel.component.jms.JmsConfiguration.
                 TODO: further research to determine if we really need
any of these!
                <property name="wrapInSingleConnectionFactory" value="false" />

                <property name="reconnectOnException" value="false"/>

                <property name="useJms11" value="true" />

                <property name="pubSubDomain" value="false"/>

                <property name="sessionTransacted" value="false" />

                <property name="targetDestination" value="jms/My_Target_Queue"/>
   (The target queue name is taken care of at the route level in Camel)
                <property name="replyDestination" 
value="jms/My_Response_Queue"/>
  (Not reading the response queue, so don't need this)
                -->



                <property name="connectionFactory" ref="myConnectionFactory" />
                <property name="destinationResolver" ref="jmsDestResolver" />

                <property name="concurrentConsumers" value="1" />

                <property name="maxConcurrentConsumers" value="10" />

                <property name="cacheLevelName" value="CACHE_NONE" />

        </bean>

        

</beans>


--
----
http://www.liquid-reality.de

Reply via email to