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!


关于作者

UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Virtualization icon

虚拟化

适用于您的本地或跨云工作负载的企业虚拟化的未来