오늘 만난 에러이다.
스트러츠 1.3.10을 사용한 웹 애플리케이션을 개발하던 도중 만났다.;
전체 메시지는 다음과 같다.
고맙게도 에러 메시지는 저게 다다.;;;;
자... 뭐가 문젤까? 이런 경우 가장 크게 의심이 가는 건, 역시 설정 파일이다. web.xml 파일과 struts-config.xml 파일을 이잡듯 뒤졌지만, 뚜렷한 원인을 찾지 못했다.
구글링을 해보니, 역시나 그런 쪽 문제이다. 톰캣이 스트러츠의 액션 서블릿을 초기화하다 무슨 문제가 생긴 것이다. 그런데 로그도 찾을 수 없고, 에러 메시지는 저게 달랑 다라서 좀 헤맸다.;
결론적으로는 struts-config.xml 파일의 문제였다. <controller> 앨리먼트와 <message-resources> 앨리먼트의 속성으로 아직 만들지 않은 자바 클래스를 지정해 뒀던 것이다. 이것이 문제가 되어 스트러츠 액션 서블릿이 제대로 로드가 되지 않았던 것 같다.
결국, servlet-config.xml 파일의 어떤 부분에서라도 잘못이 있으면 스트러츠를 사용할 수 없다. 부분적(?)으로도 기동하지 않는다는 것이다.
이번 일로, 역시 에러 메시지의 중요성에 대해 깨달았다.; 그냥 저렇게만 떡하니 나오니 이거 서울에서 김서방 찾기지..;;;
그리고 나서 웹 애플리케이션을 다시 구동해 보니 이제 저 에러는 사라졌다. 단지 그 다음 에러가 났을 뿐이다.;;
그래도 이번엔 예외 스택에 쌓인 에러 메시지가 주~~욱 나와 주신다. 이런 고마울 데가!! ^^;;;
** 추가 **
개발 서버에서 배포 서버로 웹 애플리케이션을 WAR 형태로 배포한 뒤에 배포 서버에서 또 위와 같은 에러가 나왔다.;;
문제의 소지가 역시 struts-config.xml에 있을 것이라고 판단하였지만, 개발 서버에서는 동일한 내용을 가지고 잘 실행이 되는 것이, 배포 서버에서만 안된다는 것이 이상했다.
...........약 12시간 동안 별의 별 삽질을 다 하였지만 결국 해결을 못했다. 톰캣 설정과 로그도 다 뒤져가면서..; 대체 어디가 문제란 말인가....
좌절의 늪에서 기어 나와 다시 삽을 들고 struts-config.xml을 파기 시작했다. 이번에 취한 approach는 struts-config.xml 내의 앨리먼트를 하나씩 주석 처리해 가며 결과를 보는 것이었다.
이럴 수가, <form-beans> 앨리먼트가 문제였다. 대체 나의 폼빈들이 무엇이 문제가 있단 말인지... 그 순하디 순한 아이들이...
<form-beans> 앨리먼트를 주석 처리하고 웹 애플리케이션을 돌려보니 일단 된다. 하다보니 예외가 발생하였는데 그 예외인 즉,
였다...
아뿔싸!!
그제서야 주마등처럼 머리를 스치고 지나가는 생각. 개발 서버에서의 자바 버전은 6이고, 배포 서버에서의 자바 버전은 5였던 것이다!!! >_<;;
사소한 차이라고 여겨졌던 그 차이는, 결국 개발 서버에서 자바 6로 컴파일된 나의 폼빈 클래스들이 배포 서버의 자바 5 런타임에서 구동되지 못하도록 했고, 폼빈이 제대로 구동되지 않자 스트러츠의 ActionServlet 요놈이 체대로 초기화 되지 못했던 것이다...
라고 말하는 김전일이 생각난다.;;;
그의 명대사 하나가 더 생각이 나는군..
어쨌거나 범인(원인)은 이 안(struts-config.xml 안)에 있다............-_-;;;
감히 확신하건대, 스트러츠 사용 시 'Servlet action is not available'이라는 에러가 나는 것은 거의 이 struts-config.xml 이 놈 때문이고, 이 놈을 잘 살펴보다보면 사건(?)의 실마리를 잡을 수 있다.
안의 설정들을 주석 처리해가며, 수사망(?)을 좁혀가는 것이다. 수사망을 좁히다보면 용의선 상에 오르는 놈이 있다. 이 놈을 족쳐야 한다...;
아무튼 12시간의 사투 끝에, 놈을 검거했고 이제는 저 골치아픈 메시지를 보지 않게 됐다.
그러나 모른다. 언제 어디서 놈이 우릴 노릴지...
그래서 우리는 항상 그를 경계하여야 할 것이다....
- THE END -
ps. 흠? 글이 어쩌다가 이렇게 됐지? -_-;;;;
스트러츠 1.3.10을 사용한 웹 애플리케이션을 개발하던 도중 만났다.;
전체 메시지는 다음과 같다.
HTTP Status 404 - Servlet action is not available
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
Apache Tomcat/5.5.27
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
Apache Tomcat/5.5.27
고맙게도 에러 메시지는 저게 다다.;;;;
자... 뭐가 문젤까? 이런 경우 가장 크게 의심이 가는 건, 역시 설정 파일이다. web.xml 파일과 struts-config.xml 파일을 이잡듯 뒤졌지만, 뚜렷한 원인을 찾지 못했다.
구글링을 해보니, 역시나 그런 쪽 문제이다. 톰캣이 스트러츠의 액션 서블릿을 초기화하다 무슨 문제가 생긴 것이다. 그런데 로그도 찾을 수 없고, 에러 메시지는 저게 달랑 다라서 좀 헤맸다.;
결론적으로는 struts-config.xml 파일의 문제였다. <controller> 앨리먼트와 <message-resources> 앨리먼트의 속성으로 아직 만들지 않은 자바 클래스를 지정해 뒀던 것이다. 이것이 문제가 되어 스트러츠 액션 서블릿이 제대로 로드가 되지 않았던 것 같다.
결국, servlet-config.xml 파일의 어떤 부분에서라도 잘못이 있으면 스트러츠를 사용할 수 없다. 부분적(?)으로도 기동하지 않는다는 것이다.
이번 일로, 역시 에러 메시지의 중요성에 대해 깨달았다.; 그냥 저렇게만 떡하니 나오니 이거 서울에서 김서방 찾기지..;;;
그리고 나서 웹 애플리케이션을 다시 구동해 보니 이제 저 에러는 사라졌다. 단지 그 다음 에러가 났을 뿐이다.;;
그래도 이번엔 예외 스택에 쌓인 에러 메시지가 주~~욱 나와 주신다. 이런 고마울 데가!! ^^;;;
** 추가 **
개발 서버에서 배포 서버로 웹 애플리케이션을 WAR 형태로 배포한 뒤에 배포 서버에서 또 위와 같은 에러가 나왔다.;;
문제의 소지가 역시 struts-config.xml에 있을 것이라고 판단하였지만, 개발 서버에서는 동일한 내용을 가지고 잘 실행이 되는 것이, 배포 서버에서만 안된다는 것이 이상했다.
...........약 12시간 동안 별의 별 삽질을 다 하였지만 결국 해결을 못했다. 톰캣 설정과 로그도 다 뒤져가면서..; 대체 어디가 문제란 말인가....
좌절의 늪에서 기어 나와 다시 삽을 들고 struts-config.xml을 파기 시작했다. 이번에 취한 approach는 struts-config.xml 내의 앨리먼트를 하나씩 주석 처리해 가며 결과를 보는 것이었다.
이럴 수가, <form-beans> 앨리먼트가 문제였다. 대체 나의 폼빈들이 무엇이 문제가 있단 말인지... 그 순하디 순한 아이들이...
<form-beans> 앨리먼트를 주석 처리하고 웹 애플리케이션을 돌려보니 일단 된다. 하다보니 예외가 발생하였는데 그 예외인 즉,
java.lang.UnsupportedClassVersionError: Bad version number in .class file
였다...
아뿔싸!!
그제서야 주마등처럼 머리를 스치고 지나가는 생각. 개발 서버에서의 자바 버전은 6이고, 배포 서버에서의 자바 버전은 5였던 것이다!!! >_<;;
사소한 차이라고 여겨졌던 그 차이는, 결국 개발 서버에서 자바 6로 컴파일된 나의 폼빈 클래스들이 배포 서버의 자바 5 런타임에서 구동되지 못하도록 했고, 폼빈이 제대로 구동되지 않자 스트러츠의 ActionServlet 요놈이 체대로 초기화 되지 못했던 것이다...
모든 수수께끼는 풀렸어!
라고 말하는 김전일이 생각난다.;;;
그의 명대사 하나가 더 생각이 나는군..
어쨌거나 범인은 이 안에 있다..
어쨌거나 범인(원인)은 이 안(struts-config.xml 안)에 있다............-_-;;;
감히 확신하건대, 스트러츠 사용 시 'Servlet action is not available'이라는 에러가 나는 것은 거의 이 struts-config.xml 이 놈 때문이고, 이 놈을 잘 살펴보다보면 사건(?)의 실마리를 잡을 수 있다.
안의 설정들을 주석 처리해가며, 수사망(?)을 좁혀가는 것이다. 수사망을 좁히다보면 용의선 상에 오르는 놈이 있다. 이 놈을 족쳐야 한다...;
아무튼 12시간의 사투 끝에, 놈을 검거했고 이제는 저 골치아픈 메시지를 보지 않게 됐다.
그러나 모른다. 언제 어디서 놈이 우릴 노릴지...
그래서 우리는 항상 그를 경계하여야 할 것이다....
- THE END -
ps. 흠? 글이 어쩌다가 이렇게 됐지? -_-;;;;
'Computing > Programming' 카테고리의 다른 글
| IRB (Interactive Ruby Shell)에서 탭 자동완성 기능 사용하기 (0) | 2010/08/24 |
|---|---|
| HTTP Status 404 - Servlet action is not available (0) | 2009/06/11 |
| 서브버전(Subversion) 설치 및 이클립스와 연동하기 (0) | 2009/05/16 |
| 이클립스에서 Mylyn 플러그인으로 Trac과 연동하기. (0) | 2009/05/16 |
| Trac (이슈 관리 시스템) 설치하기 (0) | 2009/05/14 |
| Java coding conventions on One Page (0) | 2009/04/16 |
TAG error message,
HTTP Status 404,
Programming,
Struts,
Web Programming,
스트러츠,
에러 메시지,
웹 프로그래밍,
프로그래밍,
대한민국>광주광역시>북구>첨단과기로 261(오룡동)>광주과학기술원>정보통신공학과
댓글을 달아 주세요