Make sure the JMS api jar is available and in one version only 29. jul. 2015 00.07 skrev "VijaySathya" <[email protected]>:
> 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. >
