最近刚学用JAVABEAN,做了个简单的测试页面,结果出现下面的错误
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /testbean1.jsp(7,4) The value for the useBean class attribute tax is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1200)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1155)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
org.apache.jasper.compiler.Generator.generate(Generator.java:3374)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
testbean.jsp代码如下<%@ page language="java" import="tax.tax" %>
<html>  <body>
    <jsp:useBean id="test" class="tax" scope="application" >
    <%=test.a()%>
   </jsp:useBean>
  </body>
</html>tax.java代码如下
package tax;
public class tax {
   public int a(){
     return 1;
   }
}
我把testbean.jsp放在F:\tomcat\webapps\ROOT下,tax.class放在F:\tomcat\webapps\ROOT\WEB-INF\classes\tax下,请各位大虾帮忙看下哪里错了,网上找了好多解决办法都没成功。快一个星期了,郁闷

解决方案 »

  1.   

    类名首字母大写。
    class 写全包
      

  2.   

    <%@ page language="java"  %>
    <html>   <body>
         <jsp:useBean id="test" class="tax.tax" scope="application" >
         <%=test.a()%>
        </jsp:useBean>
       </body>
    </html> 
      

  3.   

    tax.class吗?
     应该是 
    把tax.java 
    放到 webapps\tax 下面把。
      

  4.   

    2楼和三楼的方法都试过了,还是出现错误,还有4楼的,我把tax.java和tax.class都放在F:\tomcat\webapps\ROOT\WEB-INF\classes\tax下面也没成功
      

  5.   

    <%@ page language="java"  %>
    <html>    <body>
          <jsp:useBean id="test" class="tax.tax" scope="application" >
         
         </jsp:useBean>
     <%=test.a()%>//这句拿出来,不要放到<jsp:useBean>里
        </body>
    </html> 
      

  6.   

    设置属性才可以放到<jsp:useBean>里,

    <jsp:useBean id="person" class="com.apress.projsp.Person" scope="request">
    <jsp:setProperty name="person" property="*"/>
    </jsp:useBean>
    别的jsp语句不要放到<jsp:useBean>里,放到外面
      

  7.   

    我把所有代码重新写了下,貌似刚才那个问题解决了,但是又出现了下面这个问题
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: Bad version number in .class file
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:274)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.UnsupportedClassVersionError: Bad version number in .class file
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(Unknown Source)
    java.security.SecureClassLoader.defineClass(Unknown Source)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1175)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1155)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3374)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    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)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs
    百度了一下说   编译版本跟运行版本不一致  找了几个看看都没看懂,请教高手怎么配置?我用的是JDK6.0+TOMCAT6.0+MYECLIPSE6.0.1
      

  8.   

    应该放在类似的D:\Tomcat 5.0\webapps\app\WEB-INF\classes的classes的下面!
      

  9.   

    你编译工程类的时候编译level太低了,设置的高一些
    右键点工程->选属性->java Compiler->选中enable project specific setting ->
    ->compiler compliance level ->选5.0,保存退出,重新编译工程并部署
      

  10.   

    好了,问题解决了,谢谢,原来是改错地方了,我只改了WINDOW的preferences,没有照KKK2007 说的改工程的,把工程的也改掉问题就解决了~~~结贴