2016-02-12 3 views
0

Я пытаюсь сделать простое приложение WAS/Spring/JMS. Я захватываю фабрику соединений и пункт назначения для JMS из WAS с использованием JNDI. Я пытаюсь использовать эти объекты с помощью Spring JMS, но я не могу получить правильное кастинг. Я попробовал лить фабрику соединений в javax.jms.ConnectionFactory и javax.jms.QueueConnectionFactory. Должен ли я использовать какой-то завод пружинных соединений? Любая помощь приветствуется. WAS 8.5 и Spring 4.2.4.RELEASE.Ошибка при использовании IBM WAS ConnectionFactory и Spring

@Bean 
public ConnectionFactory jndiConnectionFactory() throws NamingException { 
    JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean(); 
    jndiObjectFactoryBean.setJndiName("jms/qcfBindingsXa"); 
    jndiObjectFactoryBean.setLookupOnStartup(true); 
    jndiObjectFactoryBean.setCache(true); 
    jndiObjectFactoryBean.setResourceRef(true); 
    jndiObjectFactoryBean.setProxyInterface(javax.jms.ConnectionFactory.class); 
    jndiObjectFactoryBean.afterPropertiesSet(); 
    return (ConnectionFactory) jndiObjectFactoryBean.getObject(); 
} 


@Bean 
public Destination destination() throws NamingException { 
    JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean(); 
    jndiObjectFactoryBean.setJndiName("jms/app/insertQ"); 
    jndiObjectFactoryBean.setLookupOnStartup(true); 
    jndiObjectFactoryBean.setCache(true); 
    jndiObjectFactoryBean.setResourceRef(true); 
    jndiObjectFactoryBean.setProxyInterface(javax.jms.Destination.class); 
    jndiObjectFactoryBean.afterPropertiesSet(); 
    return (Destination) jndiObjectFactoryBean.getObject(); 
} 

@Bean 
public DefaultMessageListenerContainer messageListenerContainter() throws NamingException{ 
    DefaultMessageListenerContainer messageListenerContainter = new DefaultMessageListenerContainer(); 
    messageListenerContainter.setDestination(destination()); 
    messageListenerContainter.setConnectionFactory(jndiConnectionFactory()); 
    //messageListenerContainter.setMessageConverter(messageConverter()); 
    messageListenerContainter.setMessageListener(messageListener()); 
    messageListenerContainter.setSessionTransacted(true); 
    messageListenerContainter.setDestinationResolver(destinationResolver()); 
    messageListenerContainter.afterPropertiesSet(); 
    return messageListenerContainter; 
} 

Ошибка:

2016-02-12 09:51:03,493 ERROR o.s.j.l.DefaultMessageListenerContainer - Could not refresh JMS Connection for destination 'queue:///APP.INPUT.OC' - retrying using FixedBackOff{interval=5000, currentAttempts=0, maxAttempts=unlimited}. Cause: AOP configuration seems to be invalid: tried calling method [public abstract javax.jms.Connection javax.jms.ConnectionFactory.createConnection() throws javax.jms.JMSException] on target 
[[email protected]_ 
managed connection factory = [email protected]_ 
connection manager = [email protected]_  
restricted methods enabled = false]; 
nested exception is java.lang.IllegalArgumentException: object is not an instance of declaring class +[] 

ответ

0

Фигурные его. Человек, я чувствую себя глупо. :/Имеет значение javax.jms jar как по пути класса сервера, так и по пути класса приложения. Весна смотрела на банку приложений, и WAS смотрел на банку с сервером. Я не контролирую или не вижу, что находится на пути к серверу, поэтому я не осознавал дублирование. Спасибо всем, кто хотя бы прочитал вопрос.

Смежные вопросы