개발

Unable to compile class for JSP 본문

SpringBoot

Unable to compile class for JSP

Dev.hs 2020. 11. 1. 02:25

스프링부트 프로젝트 구성중  컨트롤러에서 jsp를 띄워주려고 리턴시키는 중에 오류가 발생했다.

 

로그를 봤을때, 소스레벨이 1.8보다 낮아서 컴파일을 못한다는내용같아서 

 

이클립스 설정문제인지 한참을 찾았다.

 

컴파일 설정은 1.8로 잘돼있고.. 다른 jsp관련 의존성 문제인지 했으나, 그래도안됨.

2020-11-01 00:56:28.934  WARN 13488 --- [nio-8080-exec-3] org.apache.jasper.compiler.JDTCompiler   : Unsupported source VM [1.8] requested, using [1.3]
2020-11-01 00:56:28.934  WARN 13488 --- [nio-8080-exec-3] org.apache.jasper.compiler.JDTCompiler   : Unsupported target VM [1.8] requested, using [1.2]

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

An error occurred at line: [22] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

An error occurred at line: [25] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

An error occurred at line: [30] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

An error occurred at line: [32] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

An error occurred at line: [35] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
'<>' operator is not allowed for source level below 1.7

An error occurred at line: [35] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Incorrect number of arguments for type HashSet<E>; it cannot be parameterized with arguments <>

An error occurred at line: [45] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

An error occurred at line: [49] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

An error occurred at line: [53] in the generated java file: [C:\Users\Leehuseung\AppData\Local\Temp\tomcat.8080.3751359052286732760\work\Tomcat\localhost\ROOT\org\apache\jsp\WEB_002dINF\jsp\welcome_jsp.java]
Syntax error, parameterized types are only available if source level is 1.5 or greater

Stacktrace:
   at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]
   at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]
   at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:528) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]
   at org.apache.jasper.compiler.Compiler.compile(Compiler.java:392) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]
   at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]
   at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]
   at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605) ~[tomcat-embed-jasper-9.0.39.jar:9.0.39]

 

github.com/spring-projects/spring-data-examples/blob/master/jpa/pom.xml

 

에서 확인해보니까 jpa를 사용하기위해 의존성 선언은 다음과 같은 선언으로 끝나는듯 하다.

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

그러나, 스프링 부트 jpa 를 시작하려고 대충 블로그검색으로 pom.xml에 복붙결과 다음과같은게 추가됐다.

 

라이브러리가 충돌난듯..

<!-- QueryDsl 관련 라이브러리 2개-->
<dependency>
	<groupId>com.querydsl</groupId>
	<artifactId>querydsl-jpa</artifactId>
</dependency>
<dependency>
	<groupId>com.querydsl</groupId>
	<artifactId>querydsl-apt</artifactId>
</dependency>

용도도 모르고 아무 생각없이 복붙하지말자.

Comments