As a follow on to my previous post, I thought it would be interesting to describe how to live debug a Java application running on OpenShift.
Setup
sudo oc cluster up --version=latest # Any OpenShift environment will work
oc login # as developer:developer
oc new-app openshift/wildfly-101-centos7~https://github.com/danmcp/openshift-jee-sample.git
oc expose service/openshift-jee-sample
oc set env dc/openshift-jee-sample DEBUG=true # Enable the debug port
Next, browse to the web console and log in as developer:developer
. Select My Project
and click on the url for openshift-jee-sample
in the upper right. You should see the index.html page. Add /HelloWorld to the end of the url and you should see the output of the HelloWorld Servlet.
You'll need to use port forwarding to expose the debug port from the container to a local port on your host. Using port forwarding is ideal because it keeps you from having to expose the container debug port to the rest of the cluster.
oc get pods # To get the name of the running pod you will sync to
oc port-forward <pod_name> 8787:8787 # Replace <pod_name> with the value from the previous step
I'm going to use Eclipse for my example, but you can use any IDE or CLI (such as jdb) that supports remote debugging. If you are using Eclipse, you'll want to download the source and add it to your workspace.
git clone https://github.com/danmcp/openshift-jee-sample.git
Demo
At this point, you're all set to connect your debugger and start stepping through some code:
[video width="1920" height="1080" webm="https://blog.openshift.com/wp-content/uploads/java_debug.webm"][/video]
Wrap Up
My example was with oc cluster up but the basic steps of setting DEBUG=true
and oc port-forward
will work with any OpenShift environment and with all of our JBoss images. Happy debugging!
About the author
Browse by channel
Automation
The latest on IT automation that spans tech, teams, and environments
Artificial intelligence
Explore the platforms and partners building a faster path for AI
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
Explore how we reduce risks across environments and technologies
Edge computing
Updates on the solutions that simplify infrastructure at the edge
Infrastructure
Stay up to date on the world’s leading enterprise Linux platform
Applications
The latest on our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Developer resources
- Customer support
- Red Hat value calculator
- Red Hat Ecosystem Catalog
- Find a partner
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit