Java configuration to connect to IBM MQ using spring integration
Asked
Active
Viewed 903 times
1 Answers
0
Please use the below code to create a Inbound messsage driven channel adapter using java configuration.
@Value("${jms.queuemanagername}")
private String queuemanagername;
@Value("${jms.hostName}")
private String hostName;
@Value("${jms.port}")
private String port;
@Value("${jms.channel}")
private String channel;
@Value("${jms.queueName}")
private String queueName;
@Autowired
public AmqpTemplate amqpTemplate;
@Bean
public MessageChannel queureader() {
return new DirectChannel();
}
public static void main(String[] args) {
SpringApplication.run(IbmMqConnectorApplication.class, args);
}
@Bean
public IntegrationFlow ibmInbound() {
return IntegrationFlows.from(Jms.messageDrivenChannelAdapter(getConnection()).destination(reciverBean()))
.channel("queureader")
.get();
}
@Bean
public MQQueueConnectionFactory getConnection() {
MQQueueConnectionFactory connection = new MQQueueConnectionFactory();
try {
connection.setTransportType(1);
connection.setQueueManager(queuemanagername);
connection.setHostName(hostName);
connection.setPort(Integer.parseInt(port));
connection.setChannel(channel);
} catch (Exception e) {
System.out.println("Error");
}
return connection;
}
@Bean
public MQQueue reciverBean() {
MQQueue queue = new MQQueue();
try {
queue.setBaseQueueManagerName(queuemanagername);
queue.setBaseQueueName(queueName);
} catch (Exception ex) {
System.out.println("Error");
}
return queue;
}
@ServiceActivator(inputChannel = "queureader")
public void Print(Message<?> msg) {
System.out.println(msg.getPayload().toString());
}
Make sure u add the following dependencies in your pom.xml
<dependency>
<groupId>com.ibm</groupId>
<artifactId>com.ibm.mqjms</artifactId>
<version>5.3.07</version>
</dependency>
<dependency>
<groupId>com.ibm</groupId>
<artifactId>com.ibm.disthub2.dhbcore</artifactId>
<version>7.1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.ibm/com.ibm.mq -->
<dependency>
<groupId>com.ibm</groupId>
<artifactId>com.ibm.mq</artifactId>
<version>5.3.07</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.resource/connector-api -->
<dependency>
<groupId>javax.resource</groupId>
<artifactId>connector-api</artifactId>
<version>1.6-alpha-1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.ibm/com.ibm.mq -->
<dependency>
<groupId>com.ibm</groupId>
<artifactId>com.ibm.mq</artifactId>
<version>5.3.07</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.resource/connector -->
<dependency>
<groupId>javax.resource</groupId>
<artifactId>connector</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
Please set the respective values for the connection details. Thank You!!!

Sagar Shetty
- 165
- 2
- 5