You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by ganga_camel <ga...@gmail.com> on 2016/10/24 14:56:38 UTC

Accessing Websphere MQ using credentials

Hi,

I am trying to connect to WMQ using UserName and password. As per one of the
posts in the User group, I tried the below code for creating a wmq component

@Bean
    MQQueueConnectionFactory jmsConnectionFactory()
    {
        jmsConnectionFactory = new MQQueueConnectionFactory();
        try {
            jmsConnectionFactory.setPort(port);
            jmsConnectionFactory.setChannel("channel");
            jmsConnectionFactory.setHostName("host");
            jmsConnectionFactory.setQueueManager("QM");
            jmsConnectionFactory.setTransportType(type);
        }catch (Exception e){}
        return jmsConnectionFactory;
    }

    @Bean
    UserCredentialsConnectionFactoryAdapter adapter(){
        adapter = new UserCredentialsConnectionFactoryAdapter();
        adapter.setTargetConnectionFactory(jmsConnectionFactory);
        adapter.setUsername("username");
        adapter.setPassword("password");

        return adapter;
    }

    @Bean
    JmsComponent wmq()
    {
        JmsComponent wmq=new JmsComponent();
        wmq.setConnectionFactory(adapter);
        return wmq;
    }

and my route looks like

from("wmq:queue:queueName")
                .log(LoggingLevel.INFO, "Message read from WMQ is ${body}")
                .end();

When I run my route, I get the below error

Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name
'org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration': Injection
of autowired dependencies failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Could not autowire
field: private javax.jms.ConnectionFactory
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration.connectionFactory;
nested exception is
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
single matching bean but found 2: jmsConnectionFactory,adapter
	at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:368)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	... 24 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Could
not autowire field: private javax.jms.ConnectionFactory
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration.connectionFactory;
nested exception is
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
single matching bean but found 2: jmsConnectionFactory,adapter
	at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	... 45 common frames omitted
Caused by:
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
single matching bean but found 2: jmsConnectionFactory,adapter
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1126)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
	... 47 common frames omitted


Any advise on how to go about this is highly appreciated. 

Thanks,
Ganga



--
View this message in context: http://camel.465427.n5.nabble.com/Accessing-Websphere-MQ-using-credentials-tp5789189.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Accessing Websphere MQ using credentials

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Did you get this solved?

You have 2 beans that are JmsConnectionFactory with the @Bean stuff. I
think in Spring there is an annotation you can put to indicate which
of them is the primary to use.



On Mon, Oct 24, 2016 at 4:56 PM, ganga_camel <ga...@gmail.com> wrote:
> Hi,
>
> I am trying to connect to WMQ using UserName and password. As per one of the
> posts in the User group, I tried the below code for creating a wmq component
>
> @Bean
>     MQQueueConnectionFactory jmsConnectionFactory()
>     {
>         jmsConnectionFactory = new MQQueueConnectionFactory();
>         try {
>             jmsConnectionFactory.setPort(port);
>             jmsConnectionFactory.setChannel("channel");
>             jmsConnectionFactory.setHostName("host");
>             jmsConnectionFactory.setQueueManager("QM");
>             jmsConnectionFactory.setTransportType(type);
>         }catch (Exception e){}
>         return jmsConnectionFactory;
>     }
>
>     @Bean
>     UserCredentialsConnectionFactoryAdapter adapter(){
>         adapter = new UserCredentialsConnectionFactoryAdapter();
>         adapter.setTargetConnectionFactory(jmsConnectionFactory);
>         adapter.setUsername("username");
>         adapter.setPassword("password");
>
>         return adapter;
>     }
>
>     @Bean
>     JmsComponent wmq()
>     {
>         JmsComponent wmq=new JmsComponent();
>         wmq.setConnectionFactory(adapter);
>         return wmq;
>     }
>
> and my route looks like
>
> from("wmq:queue:queueName")
>                 .log(LoggingLevel.INFO, "Message read from WMQ is ${body}")
>                 .end();
>
> When I run my route, I get the below error
>
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name
> 'org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration': Injection
> of autowired dependencies failed; nested exception is
> org.springframework.beans.factory.BeanCreationException: Could not autowire
> field: private javax.jms.ConnectionFactory
> org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration.connectionFactory;
> nested exception is
> org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
> qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
> single matching bean but found 2: jmsConnectionFactory,adapter
>         at
> org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:368)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         ... 24 common frames omitted
> Caused by: org.springframework.beans.factory.BeanCreationException: Could
> not autowire field: private javax.jms.ConnectionFactory
> org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration.connectionFactory;
> nested exception is
> org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
> qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
> single matching bean but found 2: jmsConnectionFactory,adapter
>         at
> org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         ... 45 common frames omitted
> Caused by:
> org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
> qualifying bean of type [javax.jms.ConnectionFactory] is defined: expected
> single matching bean but found 2: jmsConnectionFactory,adapter
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1126)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         at
> org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
> ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>         ... 47 common frames omitted
>
>
> Any advise on how to go about this is highly appreciated.
>
> Thanks,
> Ganga
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Accessing-Websphere-MQ-using-credentials-tp5789189.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2