I get the following error when my server starts ( and tries to initialize the spring beans - I have a main camel context spring based config file, which imports 3 other spring config files. In one of the files, I define JMS beans including Connection Factories. That is where I am having issues.):
I get the following error: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.ibm.mq.jms.MQConnectionFactory' to required type 'javax.jms.ConnectionFactory' for property 'connectionFactory'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [com.ibm.mq.jms.MQConnectionFactory] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory': no matching editors or conversion strategy found Will appreciate any help to resolve this. Thanks. More Details: ========= I have a Camel based solution deployed as a war file in tomcat. My context file has a route that listens to a IBM Websphere JMS Queue and routes the message (SOAP over JMS) to a SOAP web service on a destination server. The camel context fragment is as below: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:camel="http://camel.apache.org/schema/spring" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd "> <import resource="spring-bean-router-components.xml"/> <import resource="spring-bean-common-translators.xml" /> <import resource="spring-context-jms-resources.xml" /> <camelContext xmlns="http://camel.apache.org/schema/spring" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > <propertyPlaceholder id="properties" location="file:${env:ASB_HOME}/asb-configuration.properties"/> <errorHandler id="asbDefaultEH" type="DefaultErrorHandler" > <redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="1000" retryAttemptedLogLevel="WARN"/> </errorHandler> <errorHandler id="asbDLQErrorHandler" type="DeadLetterChannel" deadLetterUri="direct:asbDLC" useOriginalMessage="true"/> <route id="jmsRouteForMQ"> <from uri="wmq:queue:testQueue?preserveMessageQos=true" /> <to uri="direct:processJmsToSoap"/> </route> <route id="routeJmsToSoap" errorHandlerRef="asbDLQErrorHandler"> <from uri="direct:processJmsToSoap"/> <log message="Route message from in queue to out queue with data ${body}" /> <setHeader headerName="sender"> <simple>${headers[sender]}</simple> </setHeader> <log message="Sender is= ${header.sender} reply to= ${headers[JMSReplyTo]} "/> <setHeader headerName="httpPath"> <simple>${headers[webContext]}</simple> </setHeader> <setHeader headerName="serviceEndPoint"> <simple>${headers[serviceEndPoint]}</simple> </setHeader> <process ref="jMSTextMessageToSoapMessageConverterProcessor" /> <setHeader headerName="serviceName"> <xpath resultType="java.lang.String"> local-name(//soapenv:Body/*[1]) </xpath> </setHeader> <process ref="jmsToSoapUriSelectorProcessor"/> <log message="Invoking recipient list with header value: ${header.serviceUri}"/> <recipientList ignoreInvalidEndpoints="true"> <header>serviceUri</header> </recipientList> <process ref="webServiceResponseProcessor"/> <wireTap uri="direct:responseTap"/> </route> <route> <from uri="direct:asbDLC"/> <log logName="CamelDLCErrorNotifications" loggingLevel="ERROR" message="Exception from notification Camel route - Message Failed due to errors- Did not process" /> <process ref="deadLetterPreProcessor"/> <to uri="jms:queue:deadLetters"/> </route> </camelContext> </beans> The imported spring-context-jms-resources.xml file has the following fragment in it's definition: <bean id="wmq" class="org.apache.camel.component.jms.JmsComponent"> <property name="connectionFactory" ref ="wmqCf"> </property> </bean> <bean id="wmqCf" class="com.ibm.mq.jms.MQConnectionFactory"> <property name="queueManager" value="XKOBIE_QMDEV01" /> <property name="hostName" value="STPDQBBY01" /> <property name="port" value="1414" /> <property name="channel" value="JAVA.DEF.SVRCONN" /> <property name="transportType" value="1"/> </bean> I use maven to build and I build my war successfully and deploy to tomcat. when I start tomcat, i get the following error: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wmq' defined in class path resource [spring-context-jms-resources.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.ibm.mq.jms.MQConnectionFactory' to required type 'javax.jms.ConnectionFactory' for property 'connectionFactory'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [com.ibm.mq.jms.MQConnectionFactory] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory': no matching editors or conversion strategy found at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4729) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.ibm.mq.jms.MQConnectionFactory' to required type 'javax.jms.ConnectionFactory' for property 'connectionFactory'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [com.ibm.mq.jms.MQConnectionFactory] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory': no matching editors or conversion strategy found at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:476) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:512) at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:506) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1523) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1482) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1222) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) ... 20 more -- View this message in context: http://camel.465427.n5.nabble.com/MQConnectionFactory-Error-tp5770036.html Sent from the Camel - Users mailing list archive at Nabble.com.