JSR-45 Debugging Other Languages 를 보고 똑딱똑딱 구현해보는중이다. 목적은 SMAP 파일 디코드하기 -ㅅ-
JSP 디버깅을 위한 stacktrace에 난
_jsp._test._err_0no__jsp._jspService(**test/err_no.jsp:13**)
이렇게 보고 싶지
_jsp._test._err_0no__jsp._jspService(**_err_0no__jsp.java:40**)
이렇게 보고 싶지 않기 때문이다 -_- 얼마나 귀찮은지 아는가 ㅜ.ㅜ 요새 다니는 회사에서 WAS를 Resin으로 채택하여 밀고 있다. Tomcat 은 아직 smap을 지원하지 않지만, Resin은 오래전부터 지원하고 있다. 어차피 smap을 잘 까서 보여주는데 왜 내가 이것을 보고 있을까.
웹페이지에서 에러를 출력해버리면 잘 나오지만, getStackTrace를 하거나 코드에서 바로 e.printStackTrace() 를 하면 (resin을 통해 트레이스를 보지 않으면) smap으로 변환되지 않기 때문..
이 내역을 다 타장비의 error logging 서버로 보내기 때문에, smap으로 변환된 코드가 없으면 매우매우 불편하다. work 폴더의 변환된 java 소스가 없으면 귀찮은걸 떠나서 어디서 예외가 났는지 '추측' 할 수밖에 없기 때문이다.
어찌되었든 JSR-45를 보고 간단히 만들 수 있을것 같다. 클래스 이름이 _jsp 로 시작하면 smap을 찾도록 만들어야지~