我配置好了JDK,TOMCAT,tomcat的jsp-example下的示例程序都可以正常运行,可我的虚拟目录就不行!
我在tomcat的webapps目录中建立ccapp目录,下面另建立WEB-INF目录,下面有web.xml文件,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">    <description>
      This is ccapp.
    </description>
    <display-name>JSP by cc</display-name>
</web-app>ccapp目录下的jsp文件为index.jsp,内容如下:
<html> 
<head> 
<title>Hi-JSP实验</title> 
</head> 
<body> 
<% 
String Msg = "This JSP test."; 
out.print("Hello World!"); 
%> 
<h2><%=Msg%></h2> 
</body> 
</html> 可是,重启tomcat服务器后,运行页面显示如下错误:
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:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
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:106)
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:935)
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
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)
这怎么解决啊?
我都配置好了JAVA_HOME为E:\XPprogram\Java\jdk1.5.0_08,也有classpath:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin
希望大虾出手帮忙!谢啦!

解决方案 »

  1.   

    http://blog.csdn.net/10yue/archive/2004/10/31/160905.aspx
      

  2.   

    感谢楼上!可是还是不行!
    就是用的http://blog.csdn.net/10yue/archive/2004/10/31/160905.aspx中的jsp代码,还是相同的错误:(
    是怎么回事哦?反正tomcat目录的所有示例都可以运行,就我找的那种简单的jsp示例不行:(没试过复杂的,呵呵
    感觉他明显是找不到java的类库文件,我在环境变量里设置好了的嘛!
    JAVA_HOME:E:\XPprogram\Java\jdk1.5.0_08
    CLASSPATH:.;E:\XPprogram\Java\jdk1.5.0_08\lib\tools.jar;E:\XPprogram\Java\jdk1.5.0_08\lib\dt.jar;E:\XPprogram\Java\jdk1.5.0_08\bin
    Path(最开头部分):.;E:\XPprogram\Java\jdk1.5.0_08\bin;怎么办啊?
      

  3.   

    JAVA_HOME does not point to the JDK
    JAVA_HOME为E:\XPprogram\Java\jdk1.5.0_08classpath;E:\XPprogram\Java\jdk1.5.0_08\libpath;E:\XPprogram\Java\jdk1.5.0_08\bin 还有,你最好单独安装JDK,我一般使用默认安装路径
      

  4.   

    看看path又没有配置好,在任意一个目录下运行javac命令。如果可以,就是配置对了,反之就有问题。
    另外,用tomcat自带的管理器查看一下,找到这个web应用了不,然后再查找错误的所在。
      

  5.   

    就是javac不能运行哈!我看了1000遍,我的classpath都对的嗒!指向的lib的dt.jar,tools.jar,及一个当前路径.
    JAVA_HOME就是jdk的安装目录E:\XPprogram\Java\jdk1.5.0_08,嗨,我无语啦!再找哈,应该哪儿没有看到
      

  6.   

    JSP程序默认是要放在webapps\ROOT下才能运行的
    如果想放到别的文件夹中
    必须在config中修改相应设置