Framework/Spring

Resin 4.0, JSP 빌드시 java.lang.NoSuchMethodError 에러

FreeEnd 2011. 10. 31. 17:34
반응형
환경
WAS : Resin 3.1, Resin 4.0
개발언어 : Java, JSP
JDK : 1.6



문제발생!!

 새로운 시스템을 개발중이다. Spring으로 개발중인데 아직 개발환경 세팅이 모두 명확히 정해지지 않았다. WAS는 Resin 3.1으로 정해졌는데, 이게 해당 개발사에서 Eclipse 플러그인 지원을 중단하였다. 해서 다른 배포사에 있는 플러그인으로 작업중인데.. 외부 어플리케이션으로 등록해 사용하기때문에 디버그가 잘 되지 않는다. 그래서 환경이 크게 차이 없는 Resin 4.1 환경을 따로 구성해서 4.1에서 개발, 디버그 작업을 하고 3.1에서 개발 된 내용을 테스트 하는 방법으로 개발을 하고 있다.

 허나!! 3.1에서 확인후 4.1로 돌아오면 가끔 에러가 나질 않는가!!! 이런 얼어죽을 형과 아우를 번갈아가며 농락하는 어처구니없는 환경에서 에러는 예상했지만 도통 원인을 찾을수 없었다. 에러는 다음과 같다.


 [11-10-31 17:11:38.692] {http://*:80-1} java.lang.NoSuchMethodError:com.caucho.make.ClassDependency.<init>(Ljava/lang/Class;J)V
     at _jsp._include._home_0layout__jsp.init(_home_0layout__jsp.java:165)
     at com.caucho.jsp.JspManager.preload(JspManager.java:354)
     at com.caucho.jsp.JspManager.compile(JspManager.java:234)
     at com.caucho.jsp.JspManager.createPage(JspManager.java:187)
     at com.caucho.jsp.JspManager.createPage(JspManager.java:168)
     at com.caucho.jsp.PageManager.getPage(PageManager.java:339)
     at com.caucho.jsp.PageManager.getPage(PageManager.java:269)
     at com.caucho.jsp.PageManager.getPage(PageManager.java:252)
     at com.caucho.jsp.QServlet.getSubPage(QServlet.java:294)
... 중략...



  원인탐색

 왜 자기 빌더에서 자기 라이브러리를 참조하지 못할까. 한참을 WAS 설정에서 클래스 패스가 빠진곳이 있나만 확인해보다가... 에잇. 천재 키다리 아저씨 구글한테 물어보기로 했다.

 역시나 양키놈들 대단하다. 그이름도 아름다운 알렉스라는 양키놈이 대답해주길..

ALEX
This particular error caused by classes compiled against older version of resin. Can you remove the WEB-INF/work directory? Resin puts all generated .java code there by default unless it's redefined in <work-dir> or @work-dir under the web-app tag.

http://forum.caucho.com/showthread.php?t=25555


라신단다. 

문제는 이거다. JSP 파일을 java로 변환할때 RESIN 3.1이하셧고 이걸 빌드는 4.1이 할라해서 3.1 라이브러리를 참조하는 부분을 4.1컴파일러가 빌드를 못해 일어나는 문제였던 거이였다. 


  해결

 오나전 감사한 ALEX에게 감사의 박수만 보내면서 우리 ALEX가 가르쳐준대로 /WEB-INF/work 디렉토리를 걍 지워버렸다.
 아. 깔끔해. 헌데 문제가 하나 더생겼네. 이거 4.1이 컴파일한 놈을 3.1이 또 못읽을꺼 아녀!! 
 요건 다음에 해결하자. ^^; 지영옹.




 


반응형