JDK 1.4에서 컴파일된 어플리케이션을 JDK 1.5에서 사용할 때 종종 JSP 컴파일 오류가 발생하는 경우가 있다. 아래와 같은 generic type에 대한 오류 메시지가 출력된다.

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 1 in the generated java file
The type Collection is not generic; it cannot be parameterized with arguments <? extends E>

Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:316)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:121)
    com.gauce.filter.GauceFilter.doFilter(Unknown Source)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


이럴 경우에는
$SERVER_NAME/deploy/jboss-web.deployer/conf/web.xml
파일에 아래 컴파일러 소스, 컴파일러 타겟 버전을 지정하여 해결할 수 있다.
물론 가장 좋은 방법은 개발환경을 1.5로 모두 변경하여 JDK 1.5에서 모두 컴파일 하는 것이다.

<init-param>
 <param-name>compilerTargetVM</param-name>
 <param-value>1.5</param-value>
 </init-param>
 <init-param>
 <param-name>compilerSourceVM</param-name>
 <param-value>1.4</param-value>
 </init-param>


|

놀새~'s Blog is powered by Daum & tistory