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.

解决方案 »

  1.   

    运行tomcat自带例子是没有问题的,而且这个jsp在resin上是可以运行的
      

  2.   

    你的classpath里有没有 .;%你的JDK路径%\lib\tools.jar?你的代码<%= new java.util.Date() %>中使用的java.util.Date就在tools.jar里面。
    至于那个例子程序,它没有调用java.util.*里的任何内容,当然不会抛以常了,还是检查你的环境变量吧。看看你的JDK\lib下有没有这个tools.jar,如果没有证明你安装的不是JDK而是单纯的JRE
      

  3.   

    我的JAVA程序是可以编译,运行的。是tomcat的路径不对吗?
      

  4.   

    别忘了配置环境变量。还有tomcat的驱动程序要放对地方,common的lib下
      

  5.   

    我现在的配置:
        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为什么不行呢?
      

  6.   

    TO jiang9885_0:
        我的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          
      

  7.   

    JB带了一个jdk,你的机器上是不是还安了jdk?
      

  8.   

    报的是JAVA_HOME 的错误。好象还是jdk指的有问题
      

  9.   

    是装有2个jdk!我把它删掉试试。
      

  10.   

    不是两个JDK的问题,是设置环境变量的问题
    一,配置环境变量
    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>
      

  11.   

    问题已经解决,谢谢大家!我向你们至敬。
    还是环境变量的事,只不过不是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
      

  12.   

    我的操作系统:windows 2000;
    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的朋友有个借鉴。
    结贴。