camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Schneider <ch...@die-schneider.net>
Subject Re: JMSConfiguration - Camel vs CXF
Date Tue, 08 Feb 2011 17:56:37 GMT
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
> <chris@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


Mime
View raw message