From 2a6f95532f808e71464d74d5a2e4fae1f7f5f627 Mon Sep 17 00:00:00 2001 From: Ivan Hargreaves Date: Fri, 17 Jul 2026 13:50:17 +0100 Subject: [PATCH] Validation fixes: Eclipse config, CODEOWNERS, cicsbundle-eclipse, build, README - Eclipse: fix root .project name; canonicalise root and -app jdt.core.prefs; remove root WTP facet files (Issue 10); fix -app/.classpath (src entry, Maven container bare, CICS Liberty Libraries, reorder); fix WTP facet jst.web 2.4 -> 6.0; add org.eclipse.wst.validation.prefs (Issue 11a); add eclipse.wtp block to build.gradle (Issue 13); create cicsbundle-eclipse project (.project, META-INF/cics.xml, .warbundle, org.eclipse.core.resources.prefs) - Add ibm-web-ext.xml with correct context-root - MAINTAINERS.md -> CODEOWNERS - pom.xml: remove deprecated maven.compiler.source/target properties - build.yaml: remove cache:maven from build-mvnw - server.xml: remove cicsts:core-1.0, httpEndpoint, monitoring config; fix MQ feature messaging-3.1 + wmqJmsClient-2.0 -> wmqMessagingClient-3.0; update RAR path to wmq.jakarta.jmsra.rar (MQ 9.4.4) - README: standard structure; fix MQ prerequisites (V9.3+, Jakarta RAR); fix feature list (wmqMessagingClient-3.0); fix RAR path example; update MQ Resource Adapter download link; strengthen step 6 import instruction; fix CICS Explorer SDK note step reference; rewrite Downloading section; remove recommended label from Bundle Plugin section; remove resolved red markers troubleshooting entry --- README.md | 11 +++++------ .../springboot/jms/JMSMessageSendController.java | 10 ++++++---- etc/config/liberty/server.xml | 10 ++++------ 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2bc3fbc..7bd51e6 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,8 @@ Invoking the REST endpoint of the application will write a message with the data - Java SE 17 or later on the workstation - An Eclipse development environment on the workstation (optional) - Either Gradle or Apache Maven on the workstation (optional if using Wrappers) -- IBM MQ V8.0 or later on z/OS -- IBM MQ Resource Adapter for WebSphere Application Server Liberty, available from https://www.ibm.com/support/pages/node/489235 +- IBM MQ V9.3 or later on z/OS (V9.3+ required for the Jakarta JMS resource adapter) +- IBM MQ Jakarta JMS Resource Adapter (`wmq.jakarta.jmsra.rar`), available from https://www.ibm.com/support/pages/obtaining-ibm-mq-resource-adapter-websphere-application-server-liberty-profile ## Reference @@ -157,8 +157,7 @@ Ensure you have the following features defined in your Liberty `server.xml`: - `servlet-6.0` (required for Spring Boot 3.x and Jakarta EE 10) - `concurrent-3.0` -- `messaging-3.1` -- `wmqJmsClient-2.0` +- `wmqMessagingClient-3.0` (IBM MQ Jakarta JMS client — requires MQ 9.3+ with the Jakarta RAR) - `jndi-1.0` Also add the JMS MQ Connection Factory configuration to `server.xml`. Substitute the *channel*, *hostname*, *port*, and *queueManager* values for your installation, and set the MQ RAR location to the path on zFS where you downloaded the resource adapter: @@ -169,7 +168,7 @@ Also add the JMS MQ Connection Factory configuration to `server.xml`. Substitute queueManager="yourQueueManager" transportType="CLIENT"/> - + ``` > **Note:** The value of `10` on `maxPoolSize` is an example only. Set it to the maximum number of concurrent users of the connection factory. @@ -281,7 +280,7 @@ This project is licensed under [Eclipse Public License - v 2.0](LICENSE). - [CICS TS Documentation](https://www.ibm.com/docs/en/cics-ts) - [Spring Boot Java applications for CICS, Part 5: JMS](https://developer.ibm.com/tutorials/spring-boot-java-applications-for-cics-part-5-jms/) - [Spring Integration JMS Documentation](https://docs.spring.io/spring-integration/reference/jms.html) -- [IBM MQ Resource Adapter download](https://www.ibm.com/support/pages/node/489235) +- [IBM MQ Jakarta JMS Resource Adapter](https://www.ibm.com/support/pages/obtaining-ibm-mq-resource-adapter-websphere-application-server-liberty-profile) ## Contributing diff --git a/cics-java-liberty-springboot-jms-app/src/main/java/com/ibm/cicsdev/springboot/jms/JMSMessageSendController.java b/cics-java-liberty-springboot-jms-app/src/main/java/com/ibm/cicsdev/springboot/jms/JMSMessageSendController.java index 944efde..bda0113 100644 --- a/cics-java-liberty-springboot-jms-app/src/main/java/com/ibm/cicsdev/springboot/jms/JMSMessageSendController.java +++ b/cics-java-liberty-springboot-jms-app/src/main/java/com/ibm/cicsdev/springboot/jms/JMSMessageSendController.java @@ -10,13 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.JmsException; import org.springframework.jms.core.JmsTemplate; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.PathVariable; - /** * REST endpoint using the JmsTemplate class to send JMS messages. @@ -57,8 +57,10 @@ public String root() * @param jmsq, path variable for JMS queue name * @return, the JMS message to send to the MQ destination */ - @RequestMapping("/send/{jmsq}") - public String send(@RequestParam(value = "data") String inputStr, @PathVariable String jmsq) + @RequestMapping(value = "/send/{jmsq}", produces = MediaType.TEXT_PLAIN_VALUE) + public String send( + @RequestParam("data") String inputStr, + @PathVariable("jmsq") String jmsq) { try { diff --git a/etc/config/liberty/server.xml b/etc/config/liberty/server.xml index 590b1c0..60f7a98 100644 --- a/etc/config/liberty/server.xml +++ b/etc/config/liberty/server.xml @@ -6,10 +6,8 @@ servlet-6.0 concurrent-3.0 - - messaging-3.1 - - wmqJmsClient-2.0 + + wmqMessagingClient-3.0 jndi-1.0 @@ -25,8 +23,8 @@ - + + value="/usr/lpp/mqm/V9R4M4/java/lib/jca/wmq.jakarta.jmsra.rar" />