`
burninglouis
  • 浏览: 36578 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Unable to compile class for JSP 错误的解决过程。

阅读更多

使用Nutz开发应用。

刚配置好Tomcat。启动项目没问题。然后一访问就报错了。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2012-8-18 19:17:40 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
 
An error occurred at line: 23 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:439)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Thread.java:619)

 

 

 

于是呢,百度之。

网上说是Tomcat的web.xml和项目里的web.xml中德版本标识不一样。

就是这句话

 

1
2
3
4
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

 

于是我就保证他们俩统一了。启动之。错误继续!

然后我又百度。在ITeye找到这么一个活生生的案例。

原文是这样的:

 

工程启动正常,但是只要一访问页面就会报: 

The method getJspApplicationContext(ServletContext) is undefined for the typ  ...... 

打断点,每次走到 CharacterEncodingFilter.java  doFilter()就抛异常了。 


网上说是工程里面多了几个包,认真找下去,还真的是多了 javax.servlet.jar 和 javax.servlet.jsp.jar 两个包。 去掉就OK了。


 

然后我看了下。 javax.servlet.jar 和 javax.servlet.jsp.jar 两个包在J2EE Library中。于是我移除了J2EEl Library。

允许。报错!依然是:

 

1
2
3
4
Unable to compile class for JSP:
 
An error occurred at line: 23 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

 

继续找方案。我相信一定会解决的。

百度里全是说删除那两个jar包的方案。无果,我就自己又新建了一个web项目,运行没出错。

于是就应该是我项目里的问题了。

又找到了信心,继续寻找错误根源。

可能结果很搞笑。

我新建了一个项目,把原项目的类,配置,jsp文件全部拷贝进去了。还有jar包。

然后运行成功了。

想了想,应该是我之前建立项目的时候选择的是J2EE4.0 然后再进行项目操作的时候,我不小心使用Myeclipse将项目强制J2EE5.0 ,然后可能就会出现了jar包的冲突。

 

我想如果日后出了这样的问题。应该尝试了这些方法就能解决。

 

结果就是Myeclipse的jre版本和开发环境的版本不一致,或者找不到相应的版本

分享到:
评论

相关推荐

    Unable to compile C++ source code(解决方案).md

    Unable to compile C++ source code(解决方案).md

    MinGW_w64 CC++安装包及说明.rar

    ERROR: Unable to compile MEX function: "未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器的解决方案 含有安装包,以及对应的安装说明,系统环境说明, 按照说明操作,即可保证正常运行

    原创解决mex-setup未找到支持的编译器或 SDK

    ### 原创解决mex-setup未找到支持的编译器或SDK问题 在使用MATLAB进行编程时,经常会遇到需要调用C/C++代码的情况。为了实现这一功能,MATLAB提供了一个名为`mex`的工具,它可以将C/C++源代码编译成动态链接库(DLL...

    JSP访问时出错

    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [45] in the generated java file: [F:\apache-tomcat-8.0.14\work\Catalina\localhost\MoniWeb\org\apache\jsp...

    java异常解决方案.docx

    * org.apache.jasper.JasperException: Unable to compile class for JSP: + 解决方案:检查 JSP 文件是否存在编译错误,尝试使用 JSP 的编译工具来检查问题。 * Servlet.service() for servlet jsp threw ...

    jsp中使用javabean的两点注意事项

    org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 18 in the jsp file: /javabean.jsp TempBean cannot be resolved to a type ``` 这个错误表明JSP页面在尝试...

    moc.exe 解决moc过程中不支持处理enum包含#include头文件的语法。

    The moc process failed to compile "SRC:/..............." into "Src:/................................." command -------- path/to/path 问题2 tbb/tbb_profiling.:28: Parse error at "{

    mingwC/C++编译器

    wxgcc是一个开源的C/C++编辑软件,该软件轻型小巧,支持代码高亮,支持即时输入即时运行;是对著名的GCC开源编译工具的简单图形前端实现,通过wxpython语言开发而成。支持Windows XP,Windows 7 和 Linux 等多个平台...

    解决vue安装less报错Failed to compile with 1 errors的问题

    1、创建vue项目后安装less,执行 npm install less less-loader –save-dev 下载版本为:less-loader@6.1.0 , less@3.11.3,重启服务报错,报错信息如下: 2、报错原因 less 本版太高需要降低版本,执行代码 ...

    Cross compile OpenSSH for mips

    ### Cross Compile OpenSSH for MIPS 在嵌入式系统的开发过程中,常常需要为特定的硬件平台构建定制化的软件组件。本文将详细介绍如何为MIPS架构的嵌入式设备交叉编译OpenSSH,以便能够在其上运行SFTP服务。由于...

    fckeditor for jsp 的jar包

    这个是一个我修改过的fckeditor for jsp 的jar包的源代码,是fckeditor-2.3的,我修改了ConnectorServlet.java和SimpleUploaderServlet.java两个文件 我在这两个文件中都是加了一个静态变量encoding,private static...

    vbe 3.0 samples ,how to compile it? (1)

    how to compile the sample ?

    compile DCMTK for Windows with CMake

    OpenSSL support: set "DCMTK_WITH_OPENSSL" to "ON" and "WITH_OPENSSLINC" as well as "WITH_OPENSSLLIB" to the respective paths for OpenSSL include files and libraries. TIFF support: set "DCMTK_WITH_...

    demo of msbuild to compile without vs

    一个简单的msbuild命令行使用demo,可直接编译项目,无论是解决方案(sln)还是csproj或者vbproj。msbuild真的非常好,有了它就不用打开笨重的visual studio了!如需实际使用,请执行填写项目相对路径(绝对路径也可以)...

    compile_compile

    compile

    Studio 编译报错:compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.的解决办法

    其中一种常见的问题是“compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.”,这个错误表明Android Studio(通常被称为Studio)在尝试编译项目时,发现当前配置的Java Development Kit (JDK)...

    python compile to source

    complied python code to source code.

    compile_protobuf_protobuf:compile_protobuf_

    标题"compile_protobuf_protobuf:compile_protobuf_"指的是使用protobuf编译器来处理.proto文件的过程。这个过程涉及到将.proto文件编译成特定编程语言(如C++、Java或Python)的源代码,以便在程序中使用protobuf...

    color-compile - 源码

    在编程世界中,高效地定位和解决错误是至关重要的,特别是在使用像GCC(GNU Compiler Collection)这样的编译器时。`color-compile`是一个实用工具,它为`gcc/g++/make`编译过程中的错误、警告和提示信息添加了颜色...

    Java_for_the_Web_with_Servlets

    - **JSP Directives**: Directives provide instructions to the JSP engine about how to compile the page. Common directives include `page`, `include`, and `taglib`. - **JSP Actions**: JSP actions are ...

Global site tag (gtag.js) - Google Analytics