2011-05-07 70 views
7

저는 JSP 프로젝트에서 일하고 있습니다. 톰캣 6 서버와 넷빈즈를 사용하여 프로젝트를 실행 해 동안, 나는 다음과 같은 예외,JSP 클래스를 컴파일 할 수 없습니다.

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

An error occurred at line: 8 in the generated java file 
Only a type can be imported. com.TransportPortal.MyFunctions resolves to a package 

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:439) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:349) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

그것은 아파치 톰캣의 lib 디렉토리에 servelet-api.jar을 가지고 있어요.

문제를 해결하는 데 도움을주세요.

+1

우리에게 JSP를 보여주십시오. – skaffman

답변

9

오류 때문에 클래스가 아닌 것을 가져 오려고하는 것 같습니다. 이 패키지의 경우

<%@page import="com.TransportPortal.MyFunctions"%> 

을 당신은 당신이 이런 식으로해야 할 패키지에 모든 것을 가져올 : 당신의 MyFunctions 클래스 인 경우

, 당신은 이런 식으로 가져와야합니다

<%@page import="com.TransportPortal.MyFunctions.* "%> 

편집 :

모두 다루 편집 당신이 오류를주는 두 가지 사례가 있습니다

.

6

Java JRE 버전과 관련이있을 수 있습니다.

제 경우에는 JRE 1.8.0_91에서 같은 오류를 나타내는 Tomcat 6.0.26이 필요합니다. JRE 1.7.49로 다운 그레이드하여 해결되었습니다.

당신은 더 많은 정보를 찾을 수 있습니다

: http://www.howopensource.com/2015/07/unable-to-compile-class-for-jsp-the-type-java-util-mapentry-cannot-be-resolved/

+0

감사합니다. 필자의 경우 최신 JDK를 계속 사용하고 싶었다. 방금 1.8.101로 업그레이드했습니다.maven'tomcat embedded' ** 6 ** ** ** 7 **에서이 문제를 해결했습니다. – oak

2

어느 쪽이든 당신은 JRE 1.7.49

로 다운 그레이드하거나 수정하는 JRE에 8

단계를 실행하려면 : -

1. Liferay Tomcat의 1.Go to Lib 폴더. 2.Replace : - ecj-4.4.2가있는 ecj-3.7.2.jar. 서버

+0

Tomcat에 ecj4.6.1이 있습니다. 여전히 동일한 문제를 직면하고있다 – sambatha

+0

나는 ecj-4.6.3.jar를 사용했고 그것은 나를 위해 일했다. –

1

3.Restart 나는 일식 네온 버전 예외 같은 예외를 직면는

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

An error occurred at line: 1 in the generated java file 
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files 

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:439) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:349) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

아래 내가 받는다는 플러그인의 아파치 톰캣 (8)을 사용하는 것과 내가 그것을 업데이트 할 수 있지만 같은 문제에 직면했습니다. 내가 나를 위해이 의지 성공을 사용하여 새 외부 아파치 톰캣 버전 8.5.14 및 실행 프로젝트를 다운로드 한 후

나는 유용한 몇 가지 하나의 희망이 예외

-1
<pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.tomcat.maven</groupId> 
       <artifactId>tomcat7-maven-plugin</artifactId>  
       <version>2.2</version> 
      </plugin> 
     </plugins> 

+0

코드에 컨텍스트를 제공하십시오. 어디에 넣으시고 질문의 문제를 어떻게 해결합니까? – TheEspinosa

0
위의 해결을위한

org.apache.jasper.JasperException : JSP 용 클래스를 컴파일 할 수 없습니다.

enter image

+1

프로젝트 propotice -> 웹 배포 어셈블리 ---> 추가 ----> Java 빌드 경로 항목 ---> Maven 종속성 –

관련 문제