你的信息不全,可以参考我下面这段代码,肯定可以跑的。
@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;
}
}
收起