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
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.