This lab demonstrates a simple WebLogic JMS messaging flow using a ready-to-run Helidon SE REST producer.
The Helidon application receives an HTTP request, sends its body to a WebLogic JMS queue, and provides endpoints to check the application health, the most recently sent message, and the number of messages sent. The project is available on GitHub and can be built from source or run from a release jar.
GitHub repository:
https://github.com/puneethbuilds-helidon/weblogic-jms-helidon-rest-producer-demo
What the Lab Demonstrates
HTTP client → Helidon REST Producer → WebLogic JMS Queue → Optional Helidon JMS Consumer
A client posts text to the Helidon REST endpoint. Helidon connects to WebLogic through T3, looks up the configured JMS connection factory and queue through JNDI, then publishes the text as a JMS message.
What to Create in WebLogic Server
Before running the application, create the following JMS resources in WebLogic Server.
JMS Server: TestJMSServer
JMS Module: TestJMSModule
Subdeployment: TestSubdeployment
Connection Factory: TestConnectionFactory
Connection Factory JNDI name: jms/TestConnectionFactory
Queue: TestQueue
Queue JNDI name: jms/TestQueue
Target the JMS Server, connection factory, and queue to a running WebLogic Server. The queue must be assigned to the JMS Server through the subdeployment.
The default WebLogic T3 address used by the demo is:
t3://localhost:7001
Replace it if WebLogic runs on a different host or port.
Download or Build the Application
Open the GitHub repository:
https://github.com/puneethbuilds-helidon/weblogic-jms-helidon-rest-producer-demo
To build the application locally, run:
git clone https://github.com/puneethbuilds-helidon/weblogic-jms-helidon-rest-producer-demo.git
cd weblogic-jms-helidon-rest-producer-demo
mvn clean package
The build produces:
target/weblogic-jms-helidon-rest-producer-demo.jar
Add the WebLogic Client JAR
The application does not include Oracle’s WebLogic Thin T3 client JAR. Copy a compatible wlthint3client.jar from your licensed WebLogic installation and include it in the runtime classpath.
Typical source location:
$ORACLE_HOME/wlserver/server/lib/wlthint3client.jar
Set Your WebLogic Connection Details
Set the WebLogic connection details in your terminal:
export WLS_URL="t3://localhost:7001"
export WLS_USER="weblogic"
export WLS_PASSWORD='MySecretPassword'
export WLS_CONNECTION_FACTORY="jms/TestConnectionFactory"
export WLS_QUEUE="jms/TestQueue"
export HTTP_PORT="8081"
Start the Helidon REST Producer
Run the application with the WebLogic client JAR:
java -cp "target/weblogic-jms-helidon-rest-producer-demo.jar:/path/to/wlthint3client.jar" com.example.wlsjmsproducer.HelidonProducerMain
The producer connects to jms/TestQueue and starts an HTTP service on port 8081.
Send a Test Message
Open another terminal and run:
curl -i -X POST http://localhost:8081/messages -H ‘Content-Type: text/plain’ — data ‘Hello from Helidon REST producer’
The REST endpoint sends the text to jms/TestQueue and returns 201 Created with the generated JMS message ID.
Verify the Producer
After sending a message, verify these endpoints on port 8081:
http://localhost:8081/health
http://localhost:8081/last-sent
http://localhost:8081/count
The /health endpoint confirms that the producer is running. The /last-sent endpoint displays the latest message sent by the application. The /count endpoint returns the number of messages sent by the running process.
Optional End-to-End Validation
To confirm delivery, either inspect the JMS destination in WebLogic Administration Console or run the companion Helidon consumer against the same queue.
Consumer repository:
https://github.com/puneethbuilds-helidon/weblogic-jms-helidon-consumer-demo
The full message flow is:
curl → Helidon REST Producer → WebLogic JMS Queue → Helidon JMS Consumer
More Details
This post focuses on downloading or building the project and running the REST producer. The repository README includes the project structure, configuration details, and troubleshooting guidance.
For the detailed WebLogic JMS setup and complete walkthrough, refer to the Medium article:
