http://127.0.0.1:8080/jsp-examples/num/numguess.jsp可以正常打开页面,
http://127.0.0.1:8080/jsp-examples/num/123.jsp时tomcat报错,
我的123.jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
Hello! The time is now <%= new java.util.Date() %>
</body>
</html>
我跟 numguess.jsp放在相同目录的,123.jsp就不行,报错如下:
type Exception reportmessage 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
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:434)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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:802)
root cause Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:105)
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:929)
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:402)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.29 logs.
http://127.0.0.1:8080/jsp-examples/num/123.jsp时tomcat报错,
我的123.jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
Hello! The time is now <%= new java.util.Date() %>
</body>
</html>
我跟 numguess.jsp放在相同目录的,123.jsp就不行,报错如下:
type Exception reportmessage 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
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:434)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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:802)
root cause Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:105)
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:929)
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:402)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:492)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:471)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:459)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.29 logs.
至于那个例子程序,它没有调用java.util.*里的任何内容,当然不会抛以常了,还是检查你的环境变量吧。看看你的JDK\lib下有没有这个tools.jar,如果没有证明你安装的不是JDK而是单纯的JRE
JAVA_HOME:
D:\Borland\JBuilder2005\jdk1.4
CLASSPATH:
D:\Borland\JBuilder2005\jdk1.4\bin;.;
D:\Borland\JBuilder2005\jdk1.4\lib;
D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;
D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar;
D:\Tomcat 5.0\common\lib\servlet-api.jar
PATH:
D:\Borland\JBuilder2005\jdk1.4;.;
D:\Borland\JBuilder2005\jdk1.4\bin;
d:\PROGRA~1\Borland\Delphi5\Projects\Bpl;
d:\PROGRA~1\Borland\vbroker\jre\Bin;
d:\PROGRA~1\Borland\vbroker\Bin;
d:\PROGRA~1\Borland\Delphi5\Bin;
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
C:\Program Files\Microsoft SQL Server\80\Tools\BINN
CATALINA_BASE:
D:\Tomcat 5.0
CATALINA_HOME:
D:\Tomcat 5.0
java程序是可以编译运行的,但.jsp为什么不行呢?
我的common\lib下共14个.jar文件:
ant.jar
ant-launcher.jar
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-el.jar
commons-pool-1.2.jar
jasper-compiler.jar
jasper-runtime.jar
jsp-api.jar
naming-common.jar
naming-factory.jar
naming-java.jar
naming-resources.jar
servlet-api.jar
一,配置环境变量
1.新建环境变量CLASSPATH,变量值是"本机";"jdk\lib\dt.jar";"jdk\lib\tools.jar"
2.新建环境变量JAVA_HOME,变量值是jdk的根目录,例如C:\jdk1.5
3.新建环境变量Catalina_HOME,变量值是tomcat的根目录
4.修改环境变量Path,增加jdk的bin目录,例如C:\jdk1.5\bin二,修改配置文件
1.<Connector port="8088"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />port:端口,默认8080
maxThreads:
minSpareThreads:
maxSpareThreads:
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
redirectPort:
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
debug:
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
disableUploadTimeout:2.在倒数第5行加入<Context path="/别名" docBase="D:\_workspace\jcgtjoa(工作目录)" debug="0" reloadable="true"></Context>
还是环境变量的事,只不过不是windows的环境有问题。
我的configure tomcat->java->java classpath设置的有问题:
修改前的设置:
D:\Borland\JBuilder2005\jdk1.4\jre\lib\tools.jar;D:\Tomcat 5.0\bin\bootstrap.jar
修改后的设置:
D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar;D:\Tomcat 5.0\bin\bootstrap.jar
jdk:jbuilder 2005 自带的jdk1.4
tomcat5.0
环境配置如下:
JAVA_HOME:
D:\Borland\JBuilder2005\jdk1.4
CLASSPATH:
D:\Borland\JBuilder2005\jdk1.4\bin;.;
D:\Borland\JBuilder2005\jdk1.4\lib;
D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;
D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar;
D:\Tomcat 5.0\common\lib\servlet-api.jar
PATH:
D:\Borland\JBuilder2005\jdk1.4;.;
D:\Borland\JBuilder2005\jdk1.4\bin;
d:\PROGRA~1\Borland\Delphi5\Projects\Bpl;
d:\PROGRA~1\Borland\vbroker\jre\Bin;
d:\PROGRA~1\Borland\vbroker\Bin;
d:\PROGRA~1\Borland\Delphi5\Bin;
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
C:\Program Files\Microsoft SQL Server\80\Tools\BINN
CATALINA_BASE:
D:\Tomcat 5.0
CATALINA_HOME:
D:\Tomcat 5.0
tomcat的config:
D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar;D:\Tomcat 5.0\bin\bootstrap.jar
到次配置完成,测试成功。
我贴出来,希望对刚接触java的朋友有个借鉴。
结贴。