我的測試環境為tomcat6+jdk1.6
我新建一個虛擬主機地址為
http://abc.com:8088
在主機中文件目錄結構為
test.jsp
common
common/testdir/test.jsp
WEB-INF
WEB-INF\web.xml
WEB-INFO\classes
WEB-INFO\classes\mypk\db\MsSQLClass
MsSQLClass為我自定義的一個類
根目錄中的test.jsp文件內容為
<%@page import="mypk.db.MsSQLClass"%>
同時common/testdir/test.jsp中的內容一樣但編譯結果確不同,根目錄中的tets.jsp編譯無錯,
但common/testdir/test.jsp則編譯不能過,報錯如下:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 6 in the generated java file
Only a type can be imported. mypk.db.MsSQLClass resolves to a packageStacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

調了一整天,GOOGLE都被搜完了,還措出個解決方法來.

解决方案 »

  1.   

    mypk.db.MsSQLClass   resolves   to   a   package 
    好像是类文件编译后放的位置有问题
      

  2.   

    但是我將JSP文件放在根目錄下就沒事,只是不能放在根目錄的下級目錄中.
      

  3.   

    jsp文件位置放错,导致不能找到类文件。类文件的位置是没有问题的。
      

  4.   

    把中间的db文件夹去掉,class文件直接放在mypk文件夹里,然后改为 <%@page import="mypk.MsSQLClass" %> 
      

  5.   

    包导入有问题,好像多了一个包
    <%@page   import="mypk.db.MsSQLClass.MsSQLClass"   %> 
    试试 
      

  6.   

    <%@page  import="mypk.db.MsSQLClass.MsSQLClass.*"  %>类名后面再加上.*
      

  7.   

    建议用tomcat5.0试试,好像tomcat版本问题