JSP页面无效:java.lang.ClassNotFoundException:org.apache.jsp和useBean类属性的值无效

时间:2011-10-04 10:49:11

标签: java jsp exception tomcat javabeans

我在运行使用java类的jsp文件时遇到问题。 jsp文件名为temp.jsp。我已将我的jsp文件放在tomcat服务器上的ROOT文件夹中 该类位于ROOT / WEB-INF / classes / com / java / tempBean.class

以下是我的temp.jsp文件中的所有代码:

<jsp:useBean id="report" class="com.java.tempBean" scope="page">
</jsp:useBean>

以下是我的tempBean.class文件中的所有代码(该类为空 - 我现在只是尝试不产生任何错误!)

package com.java;


public class tempBean
{

    public tempBean()
    {
    }
}

当我尝试打开jsp页面时,我收到以下错误(刷新之间我得到第一个或第二个错误)

org.apache.jasper.JasperException: /temp.jsp (line: 1, column: 1) The value for the useBean class attribute com.java.tempBean is invalid.


    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
        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:1229)
        org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1182)
        org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
        org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
        org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
        org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
        org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
        org.apache.jasper.compiler.Generator.generate(Generator.java:3485)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:249)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:601)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

OR

exception

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.temp_jsp
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:168)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.ClassNotFoundException: org.apache.jsp.temp_jsp
    java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:162)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

非常感谢任何帮助:)谢谢!

2 个答案:

答案 0 :(得分:1)

当我手动将它添加到tomcat服务器时,我的类文件没有被拾取(我可能不得不重新启动服务器以便它接收它但是我不能这样做,因为它不是我的服务器! ),我将我的代码从Eclipse导出为WAR文件并将其放在webapps文件夹中(服务器会自动获取这些文件),现在它可以工作了。

感谢您的帮助:)

答案 1 :(得分:0)

请参阅问题The value for the useBean class attribute ... is invalid

可能不是错误的原因,但Java类名应该始终大写:


package com.java;

public class TempBean
{
    public TempBean()
    {
    }
}