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!
저자 소개
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
가상화
온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래