jsp-api 라이브러리 참조에 대해 상세 문의합니다.
- 작성자 :
- 김*일
- 작성일 :
- 2016-05-17 14:59:52
- 조회수 :
- 2,393
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
이전 문의 내용과 관련이 있지만 문의 해도 되는 내용인지는 조금 애매합니다만..문의 해봅니다.
BodyTagSupport 라이브러리 참조에 대해 잘못한 설정한 부분이 있는지 궁급합니다.
1. 프로젝트의 빌드패스에서 서버런타임 라이브러리는 제거
2. pom.xml 에 추가
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
3. 위와 같이 했을 경우 클래스 참조에 대해 문제가 될만한게 있을까요?
※ 톰캣의 jsp-api.jar와 maven의 jsp-api-2.0.jar
4. jsp 파일을 컴파일 할 수 없다는 에러가 발생합니다.
심각: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 22 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:460)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
--- 현재 톰캣 상황이며..
---> 현 상황에서 pom.xml의 jsp-api 부분을 삭제 후 프로젝트의 빌드패스에서 서버런타임 라이브러리를 추가해주면 톰캣 쪽 문제는 해결이 됩니다. 다만 pom.xml의 jsp-api를 제거하게 되면 젠킨스 메이븐 컴파일 시 jsp-api 라이브러리를 찾을 수 없어서 BodyTagSupport class에서 에러가(jar참조 문제..) 발생합니다.
---> 젠킨스
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /web/apache-tomcat-6.0.45/bin/web/.jenkins/jobs/프로젝트명/workspace/src/main/java/com/xxx/cmm/EgovComCrossSiteHndlr.java:[6,25] javax.servlet.jsp 패키지가 없음
해당 젠킨스가 구동되는 톰캣의 lib에 jsp-api.jar가 있는 것을 확인했는데 제가 놓친 부분이 있을까요?
5. http://open.egovframe.kr/nforges/qna/qna/3214/.do 에러 문제..보시면 공통컴포넌트 배포 클래스 즉, 패키지를 변경 + context-security.xml에서 빈 클래스의 패키지명 변경해주면 문제는 없다는건가요~?
감사합니다!
이전 문의 내용과 관련이 있지만 문의 해도 되는 내용인지는 조금 애매합니다만..문의 해봅니다.
BodyTagSupport 라이브러리 참조에 대해 잘못한 설정한 부분이 있는지 궁급합니다.
1. 프로젝트의 빌드패스에서 서버런타임 라이브러리는 제거
2. pom.xml 에 추가
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
3. 위와 같이 했을 경우 클래스 참조에 대해 문제가 될만한게 있을까요?
※ 톰캣의 jsp-api.jar와 maven의 jsp-api-2.0.jar
4. jsp 파일을 컴파일 할 수 없다는 에러가 발생합니다.
심각: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 22 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:460)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
--- 현재 톰캣 상황이며..
---> 현 상황에서 pom.xml의 jsp-api 부분을 삭제 후 프로젝트의 빌드패스에서 서버런타임 라이브러리를 추가해주면 톰캣 쪽 문제는 해결이 됩니다. 다만 pom.xml의 jsp-api를 제거하게 되면 젠킨스 메이븐 컴파일 시 jsp-api 라이브러리를 찾을 수 없어서 BodyTagSupport class에서 에러가(jar참조 문제..) 발생합니다.
---> 젠킨스
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /web/apache-tomcat-6.0.45/bin/web/.jenkins/jobs/프로젝트명/workspace/src/main/java/com/xxx/cmm/EgovComCrossSiteHndlr.java:[6,25] javax.servlet.jsp 패키지가 없음
해당 젠킨스가 구동되는 톰캣의 lib에 jsp-api.jar가 있는 것을 확인했는데 제가 놓친 부분이 있을까요?
5. http://open.egovframe.kr/nforges/qna/qna/3214/.do 에러 문제..보시면 공통컴포넌트 배포 클래스 즉, 패키지를 변경 + context-security.xml에서 빈 클래스의 패키지명 변경해주면 문제는 없다는건가요~?
감사합니다!
A
김태일님, 안녕하세요.
젠킨스에서 빌드과정에서 라이브러리를 찾을 수 없는 오류로 보입니다.
젠킨스가 구동되는 톰캣의 lib와 젠킨스는 관련이 없습니다.
pom.xml에 라이브러리 정보를 입력해 주시거나, 프로젝트의 WEB-INF/lib에 해당 라이브러리를 직접 넣어서 테스트 해보시기 바랍니다.
문의주신 5번 항목과는 관련 없습니다.
감사합니다.
젠킨스에서 빌드과정에서 라이브러리를 찾을 수 없는 오류로 보입니다.
젠킨스가 구동되는 톰캣의 lib와 젠킨스는 관련이 없습니다.
pom.xml에 라이브러리 정보를 입력해 주시거나, 프로젝트의 WEB-INF/lib에 해당 라이브러리를 직접 넣어서 테스트 해보시기 바랍니다.
문의주신 5번 항목과는 관련 없습니다.
감사합니다.