简体   繁体   中英

where to put classes and beans file in tomcat Version 8.0.24

I am calling instances from bean to continue my session in jsp. the bean is located in user folder (as i defined it as my package) having UserData.class, which i want to call using

jsp-tag:

<jsp:useBean id="user" class="user.UserData" scope="session"/>

but When I browse the file containing above code, I got following

Error:

HTTP Status 500 - /SaveName.jsp (line: 1, column: 1) The value for the useBean class attribute user.UserData is invalid.

Error Details:

type Exception report

message /SaveName.jsp (line: 1, column: 1) The value for the useBean class attribute user.UserData is invalid.

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /SaveName.jsp (line: 1, column: 1) The value for the useBean class attribute user.UserData is invalid.
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:107)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1317)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
    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:464)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3594)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

This is UserData Bean Content:

package user;

public class UserData {
    String username;
    String email;
    int age;

    public void setUsername(String value) {
            username=value;
    }

    public void setEmail(String value) {
            email = value;
    }

    public void setAge(int value) {
            age = value;
    }

    public String getUsername() { return username; }
    public String getEmail() { return email; }
    public int getAge() { return age; }
}

This is the jsp file calling UserData.class bean:

<jsp:useBean id="user" class="user.UserData" scope="session"/>
<jsp:setProperty name="user" property="*"/>

<html>
<body>
<a href="NextPage.jsp">Continue</a>
</body>
</html>

Could you verify after the war file is exploded in webapps folder of tomcat, you can navigate to WEB-INF>>classes folder and verify your UserData class is present or not? If its not present then you need to build your war file to include this class in classes folder of WEB-INF.

The error code is 500 . it means that is server problem .

servlet container is not find that class . please check the class folder for bean class . which is in web-inf folder .

Thanks for your contribution guys, I got answer:

as @Rahul Yadav said, Bean should be there in WEB-INF >> classes folder.

In tomcat, when we are initiating new project (creating new project directory under webapps folder [default is ROOT]), we have to create WEB-INF folder in each project folder.

Suppose I am placing my jsp files which required Beans (JAVA Classes) to process in ROOT folder under webapp folder of tomcat server:

  1. Create a WEB-INF folder under ROOT folder
  2. Create classes folder under WEB-INF folder
  3. Create folder with your package name (if required) under classes folder
  4. Put your java source files under package folder
  5. Compile these files

So, Your path to the Beans would be:

**

path_to_tomcat/webapps/ROOT [YOUR PROJECT DIR]/WEB-INF/classes/beans

**

and thats it! :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM