软件开发javaMQjmsIBM mq

JMS监听队列不生效?

我想要监听IBMMQ上的队列是否有数据产生,以方便我进行下一步操作,
但是我在我的方法上加了 @JmsListener(destination = "JBJK_BIDS_IN"),
我也继承了 extends MessageListenerAdapter,
却无法实现效果?请问是什么问题。

参与5

1同行回答

elidongyueelidongyue软件架构设计师中国
你的信息不全,可以参考我下面这段代码,肯定可以跑的。@PropertySource(value = {"classpath:mq.properties"})@Configurationpublic class AMQConfig {protected Logger logger = LoggerFactory.getLogger(this.getClass());@Value("${pbc.mq.manager.name}")private Strin...显示全部

你的信息不全,可以参考我下面这段代码,肯定可以跑的。

@PropertySource(value = {"classpath:mq.properties"})

@Configuration

public class AMQConfig {

protected Logger logger = LoggerFactory.getLogger(this.getClass());

@Value("${pbc.mq.manager.name}")

private String name;

@Value("${pbc.mq.manager.host}")

private String host;

@Value("${pbc.mq.manager.port}")

private String port;

@Value("${pbc.mq.manager.channel}")

private String channel;

@Value("${pbc.mq.manager.transportType}")

private String transportType;

@Value("${pbc.mq.manager.receiveQName}")

private String receiveQName;

@Value("${pbc.mq.manager.sendQNname}")

private String sendQNname;

@Value("${pbc.mq.manager.sessionSize}")

private int sessionSize;

@Value("${ccsid}")

private int ccsid;

@Value("${concurrent.consumers}")

private int concurrentConsumers;

@Bean(name="jmsConnectionFactoryPbc")

@Primary

public MQQueueConnectionFactory jmsConnectionFactory() {

MQQueueConnectionFactory jmsConnectionFactory = new MQQueueConnectionFactory();

try {

jmsConnectionFactory.setQueueManager(name);

jmsConnectionFactory.setHostName(host);

jmsConnectionFactory.setPort(Integer.parseInt(port));

jmsConnectionFactory.setChannel(channel);

jmsConnectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);

jmsConnectionFactory.setCCSID(ccsid);

} catch (NumberFormatException e) {

logger.error("jmsConnectionFactory",e);

} catch (JMSException e) {

logger.error("jmsConnectionFactory创建:",e);

}

return jmsConnectionFactory;

}

@Bean(name="cachingConnectionFactoryPbc")

public CachingConnectionFactory cachingConnectionFactory(

@Qualifier("jmsConnectionFactoryPbc") MQQueueConnectionFactory jmsConnectionFactory) {

CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();

cachingConnectionFactory.setTargetConnectionFactory(jmsConnectionFactory());

cachingConnectionFactory.setSessionCacheSize(sessionSize);

return cachingConnectionFactory;

}

@Bean(name="senderQueuePbc")

public MQQueue senderQueue(){

MQQueue senderQueue = new MQQueue();

try {

senderQueue.setBaseQueueManagerName(name);

senderQueue.setBaseQueueName(sendQNname);

senderQueue.setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ);

senderQueue.setCCSID(ccsid);

} catch (JMSException e) {

logger.error("senderQueue",e);

}

return senderQueue;

}

@Bean(name="senderJMSTemplatePbc")

public JmsTemplate senderJMSTemplate(

@Qualifier("cachingConnectionFactoryPbc")CachingConnectionFactory cachingConnectionFactory,

@Qualifier("senderQueuePbc")MQQueue senderQueue

) {

JmsTemplate jmsTemplate = new JmsTemplate();

jmsTemplate.setConnectionFactory(cachingConnectionFactory);

jmsTemplate.setDefaultDestination(senderQueue);

jmsTemplate.setPubSubDomain(false);

return jmsTemplate;

}

@Bean(name="receiverQueuePbc")

public MQQueue receiverQueue(){

MQQueue receiverQueue = new MQQueue();

try {

receiverQueue.setBaseQueueManagerName(name);

receiverQueue.setBaseQueueName(receiveQName);

} catch (JMSException e) {

logger.error("receiverQueue创建:",e);

}

return receiverQueue;

}

@Bean(name="receiverJMSTemplatePbc")

public JmsTemplate receiverJMSTemplate(

@Qualifier("cachingConnectionFactoryPbc")CachingConnectionFactory cachingConnectionFactory,

@Qualifier("receiverQueuePbc")MQQueue receiverQueue

) {

JmsTemplate receiverJMSTemplate = new JmsTemplate();

receiverJMSTemplate.setConnectionFactory(cachingConnectionFactory);

receiverJMSTemplate.setDefaultDestination(receiverQueue);

receiverJMSTemplate.setPubSubDomain(false);

return receiverJMSTemplate;

}

@Bean(name="receiverListenerPbc")

public AReceiver jmsReceiver(){

AReceiver jmsReceiver = new AReceiver();

return jmsReceiver;

}

@Bean("jmsListenerContainerFactoryTax")

public DefaultMessageListenerContainer defaultMessageListenerContainer(

@Qualifier("cachingConnectionFactoryPbc")CachingConnectionFactory cachingConnectionFactory,

@Qualifier("receiverQueuePbc")MQQueue receiverQueue,

@Qualifier("receiverListenerPbc") AReceiver aReceiverListener

) {

DefaultMessageListenerContainer factory = new DefaultMessageListenerContainer();

factory.setConnectionFactory(cachingConnectionFactory);

factory.setDestination(receiverQueue);

factory.setMessageListener(aReceiverListener);

factory.setConcurrentConsumers(concurrentConsumers);

factory.setSessionTransacted(true);

factory.setPubSubDomain(false);

return factory;

}

}

收起
软件开发 · 2021-11-03
浏览876

提问者

augustusTWT
JAVA后端AAAAA

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2021-11-03
  • 关注会员:2 人
  • 问题浏览:1484
  • 最近回答:2021-11-03
  • X社区推广