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

http://www.matrix.org.cn/thread.shtml?topicId=24399&forumId=17

我也遇到了这样的问题.

跟踪了一下, 原来是java.home指到$JAVA_HOME/jre下了.
而其lib下的 tools.jar跟$JAVA_HOME/lib/tools.jar不一样,
编译jsp的时候需要用到后者.
应此需要在启动 tomcat的时候让jvm知道tools.jar的位置就可以了.

注: java.home在运行的时候就会指向$JRE_HOME.
jdk 1.4.2_06-b03
jdk 1.5.0_05-b05
都会出现这种情况.

修改例子:
ant:
增 加
<property environment="env" />
然后在启动tomcat的时候 把<pathelement  location="${java.home}/lib/tools.jar" />
改为: <pathelement location="${env.JAVA_HOME}/lib/tools.jar" />
就可以了.

eclipse:
windows -> preference -> tomcat -> jvm settings -> boot classpath 中加入你的
JAVA_HOME/lib/tools.jar就可以了.

不知道sun这样做的原因是什么.

http://www.cnblogs.com/zhengyun_ustc/archive/2005/06/14/174348.html

 

[Java]Axis 需要高版本的 J2sdk: j2sdk-1_4_2_08

编写者

日期

关键词

郑昀 @ultrapower

2005-6-14

Java Web Service Axis Tomcat j2sdk

 

现象

按照 Install Axis 的详尽步骤依次安装了 axis-bin-1_2 Tomcat 5.0 ,也按照要求复制相应的 lib 文件到 Tomcat 目录下。

但是,当重新启动 Tomcat 后,浏览 http://localhost:8080/axis/ , 却得到了如下错误“ org.apache.jasper.JasperException: Unable to compile class for JSP ”,如下表所示:

错误页面提示:

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

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

 

No Java compiler was found to compile the generated source for the JSP. 

This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK 

to the common/lib directory of the Tomcat server, followed by a Tomcat restart. 

If using an alternate Java compiler, please check its installation and access path.

 

          

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:83)

          

org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:315)

          

org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:406)

          

org.apache.jasper.compiler.Compiler.compile(Compiler.java:463)

          

org.apache.jasper.compiler.Compiler.compile(Compiler.java:442)

          

org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)

          

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)

          

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274)

          

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

          

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

          

javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.

 

反复调整什么系统变量,都没有用。在 GooglGroup 上 查询,也没有解决办法。

解决办法

原先安装的是 j2sdk-1_4_1_02-windows-i586

最开始安装的是 j2sdk-1_4_1_02-windows-i586.exe , 看页面的提示,就把 tools.jar 复制到 tomcat 目录下,还是不行。

最终安装了 j2sdk-1_4_2_08-windows-i586-p.exe

把原来的 j2sdk 卸载,安装了最新的 j2sdk-1_4_2_08-windows-i586-p.exe 。并没有设置什么 AXIS_HOME AXIS_LIB 等 系统变量,只要把这个版本的 D:/j2sdk1.4.2_08/lib/Tools.jar 复制到 D:/Tomcat 5.0/common/lib 下, 重启动 Tomcat ,就可以浏览 Axis 了。

并且以前发布的 web service ,也可以正常 浏览了。

posted @ 2010-07-06 10:08  y0umer  阅读(157)  评论(0编辑  收藏  举报