首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IBM IBM和Spring时出错

使用IBM IBM和Spring时出错
EN

Stack Overflow用户
提问于 2016-02-12 16:18:19
回答 1查看 1.1K关注 0票数 0

我正在尝试做一个简单的WAS/Spring/JMS应用程序。我正在抓取连接工厂,JMS的目的地是使用JNDI。我试图在Spring中使用这些对象,但我似乎无法正确地进行转换。我试过把连接工厂转换成javax.jms.ConnectionFactoryjavax.jms.QueueConnectionFactory。我应该使用某种类型的Spring连接工厂吗?任何帮助都是非常感谢的。分别为8.5和4.2.4。

代码语言:javascript
复制
@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;
} 

错误:

代码语言:javascript
复制
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 
[com.ibm.ejs.jms.JMSQueueConnectionFactoryHandle@18fbbd2_   
managed connection factory = com.ibm.ejs.jms.WMQJMSRAManagedConnectionFactory@c51fdbc4_ 
connection manager = com.ibm.ejs.j2c.ConnectionManager@199d9f8f_    
restricted methods enabled = false]; 
nested exception is java.lang.IllegalArgumentException: object is not an instance of declaring class +[]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-12 17:36:48

弄明白了。伙计,我觉得自己很蠢。/在服务器类路径和应用程序类路径上都有javax.jms jar。Spring正在查看应用程序jar,并且正在查看服务器jar。我无法控制或看到Server类路径上的内容,因此我没有实现复制。感谢每一个至少读过这个问题的人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35367314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档