STS에서 Live Beans Graph를 볼 수 있도록 설정하는 방법

2014-08-19 21:48

Spring 프레임워크를 사용하다보면 최초 학습 목적이나 디버깅을 위한 용도로 Live Beans Graph를 보고 싶은 경우가 있다. 내가 이 기능을 사용하려고 생각한 이유는 학생들에게 Spring 설정에 따른 Bean Graph를 보여주고 싶었기 때문이다.

시작은 http://mydevnotes.nicus.it/2013/12/use-live-bean-graph-in-sts-to-show.html 문서로 시작했다. 뭐 이 정도 설정은 금방 끝날 줄 알았다. 하지만 모든 과정이 시작은 마지막 고비를 넘기지 못했다.

다음과 같은 과정으로 진행했다. * STS 3.1 + Spring 3.2 이상을 사용해야 한다는 요구사항은 만족 * SpringSource tc Server를 시작하는 VM 설정에 다음 내용 추가

-Dspring.liveBeansView.mbeanDomain 
-Dcom.sun.management.jmxremote.port=6969
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=localhost

STS의 Live Beans Graph를 열고 Connect to Application으로 연결 시도했다. 이 단계만 끝나면 성공. 그런데 계속해서 실패했다. 원인은 정확한 Application Name을 알 수 없다는 것이 이슈였다. 그냥 tc Server에 모듈 이름으로 하면 될 줄 알았는데 아니였다.

이에 대한 약간의 해결책은 http://forum.spring.io/forum/spring-projects/springsource-tool-suite/726582-live-beans-graph-and-a-spring-integration-app-running-in-the-debugger 답변에서 얻을 수 있었다. Application Name은 jconsole을 활용해 알 수 있단다.

jconsole로 접근은 했는데 Application Name을 찾지 못하겠다. 찾다보니 Mbeans > DefaultDomain에 있었다. 그런데 나의 jconsole 화면을 보니 다듬과 같았다는...

혹시 Application Name이 빈 값이지 않을까라고 대충 때려 맞춰서 연결했더니 성공했다. 이 값이 어떻게 결정되는지 모르겠는데 http://forum.spring.io/forum/spring-projects/springsource-tool-suite/726582-live-beans-graph-and-a-spring-integration-app-running-in-the-debugger 문서의 답변을 보니 Spring의 ApplicationContext에서 Application Name을 빈 값으로 반환하는 듯하다.

성공한 후의 Beans Graph를 다음과 같이 볼 수 있다.

한 줄로 간단히 요약하자면 STS의 Live Beans Graph 상태를 보려면 Jconsole을 활용해 Application Name을 확인한 후에 연결하면 된다.

0개의 의견 from FB

0개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로