现在的位置: 首页 > 综合 > 正文

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

2014年02月23日 ⁄ 综合 ⁄ 共 2840字 ⁄ 字号 评论关闭

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
,也可以正常
浏览了。

抱歉!评论已关闭.