Невозможно скомпилировать класс для JSP

Я работаю в проекте JSP. При запуске проекта с использованием Netbeans с сервером Tomcat 6 я получил следующее исключение:

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)

Он имеет servelet-api.jar в каталоге Apache Tomcat lib.

Пожалуйста, помогите мне решить проблему.

Ответ 1

Из-за ошибки кажется, что вы пытаетесь импортировать что-то, что не является классом.

Если ваш MyFunctions является классом, его необходимо импортировать следующим образом:

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

Если это пакет и вы хотите импортировать все в пакет, вы должны сделать вот так:

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

Edit

Есть два случая, которые дадут вам эту ошибку, отредактированную для обоих.

Ответ 3

Либо вы можете понизить до JRE 1.7.49

или если вы хотите работать на JRE 8

Шаг, чтобы исправить: -

  • Перейдите в папку Lib в Liferay Tomcat.

  • Заменить: - ecj-3.7.2.jar на ecj-4.4.2.

  • Перезагрузите сервер

Ответ 4

Я столкнулся с тем же исключением в исключении версии eclipse neon, как ниже

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)

Я использую Apache tomcat 8 плагина maven, и я попытался обновить его, но сталкиваюсь с той же проблемой.

После загрузки новой внешней версии apache tomcat 8.5.14 и запуска проекта с использованием этого успеха будет для меня

Я надеюсь, что кто-то полезен для решения выше исключения

Ответ 5

org.apache.jasper.JasperException: невозможно компилировать класс для JSP:

enter image

Ответ 6

Попробуйте добавить это в свой web.xml:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/your-servlet-name.xml
    </param-value>

Ответ 7

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