Страница JSP не будет работать: java.lang.ClassNotFoundException: org.apache.jsp и Недопустимое значение атрибута класса useBean - PullRequest
1 голос
/ 04 октября 2011

У меня проблема с запуском jsp-файла, который использует класс java. Файл jsp называется temp.jsp. Я поместил свой JSP-файл в папку ROOT на сервере Tomcat Класс находится в 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 ]

1 голос
/ 05 октября 2011

Очевидно, что файл класса не собирался, когда я вручную добавлял его на сервер Tomcat (мне, вероятно, пришлось бы перезапустить сервер, чтобы он поднял его, но я не мог этого сделать, поскольку это не мой сервер! ), Я экспортировал свой код в виде файла WAR из Eclipse и поместил его в папку webapps (сервер автоматически их забирает), и теперь он работает.

Спасибо за вашу помощь:)

0 голосов
/ 04 октября 2011

См. Вопрос Значение атрибута класса useBean ... недопустимо

Возможно, причина не в ошибке, но имена классов Java всегда должны быть заглавными:


package com.java;

public class TempBean
{
    public TempBean()
    {
    }
}

...