HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Wrapper cannot find servlet class LoginServlet or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
root cause java.lang.ClassNotFoundException: LoginServlet
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.

解决方案 »

  1.   

    这是jsp页面的代码
    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>登陆</title>
    <style type="text/css">
    <!--
    .STYLE4 {font-size: 12px; font-weight: bold; }
    .STYLE5 {color: #FF0000}
    .STYLE6 {
    font-size: 12px;
    color: #00FF00;
    font-weight: bold;
    }
    -->
    </style>
      </head>
      
      <body>
    <form id="form1" name="form1" method="post" action="servlet/LoginServlet">
      <table width="200" border="1" cellspacing="0" cellpadding="0">
        <caption>
        <span class="STYLE5">用户登录 </span>
        </caption>
        <tr>
          <td height="47" bgcolor="#CCCCCC"><p align="left"><span class="STYLE4">用户学号</span>:
              </p>
            <p>
              <input name="usrNum" type="text" id="usrNum" size="18" maxlength="8" />
            </p></td>
        </tr>
        <tr>
          <td bgcolor="#CCCCCC"><p><span class="STYLE4">用户密码</span>:</p>
            <p>
              <input name="usrPwd" type="password" id="usrPwd" size="18" maxlength="16" />
            </p></td>
        </tr>
        <tr>
          <td align="center" bgcolor="#CCCCCC"><div align="left"><span class="STYLE4">用户类型</span>
              <select name="usrStyle" size="1" id="usrStyle">
                <option value="student" selected="selected">学生</option>
                <option value="admin">管理员</option>
                </select>
          </div></td>
        </tr>
        <tr>
          <td align="center" bgcolor="#CCCCCC"><input name="Submit" type="submit" value="提交" />
              <input type="reset" name="Submit2" value="重设" /></td>
        </tr>
        <tr>
          <td height="22" align="center" bgcolor="#FFFFFF"><p align="left"><a href="Register/Register.jsp" target="_blank" class="STYLE6">注册</a><span class="STYLE4"> 期待你的加入</span></p></td>
        </tr>
      </table>
    </form>
      </body>
    </html>
      

  2.   

    这是servlet的代码
    package com.network.servlet;
    /**
     * 处理用户登录的servlet,通过调用Loginservice处理用户信息
     */
    import java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.network.service.LoginService;
    import com.network.bean.*;
    public class LoginServlet extends HttpServlet { public LoginServlet() {
    super();
    }
    public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
            this.doPost(request, response);
    } public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { response.setContentType("text/html");
    request.setCharacterEncoding("gbk");
    // 用户学号
    String usrNum=request.getParameter("usrNum");
    // 用户密码
    String usrPwd=request.getParameter("usrPwd");
    // 用户类型
    String usrStyle=request.getParameter("usrStyle");
    // 下一步要跳转到的地址
    String toJsp="../home/Home.jsp";
    if(usrStyle==""){//防止意外事件发生
    request.setAttribute("error", "用户类型出错!");
    toJsp="../Login/LoginError.jsp";
    }
    else {
    if(usrStyle.equals("student")){//如果用户类型是学生
    Student stu=new Student();
    if((stu=LoginService.studentLogin(usrNum, usrPwd))!=null){//判断用户是否通过验证,如果通过
    request.setAttribute("User", stu);
    toJsp="../home/Home.jsp";
    }
    else {//没有通过,
    request.setAttribute("error", "学号或密码错误,请重新输入!");
    toJsp="../Login/LoginError.jsp";
    }
    }
    else if(usrStyle.equals("admin")){//如果用户类型是管理员

    }
    }
    //    将请求转发到toJsp代表的页面
       RequestDispatcher  dispatcher=request.getRequestDispatcher(toJsp);
       dispatcher.forward(request,response);
    } /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
    // Put your code here
    }}
      

  3.   

    web.xml  配置 servlet mapping 没有?
      

  4.   

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>LoginServlet </servlet-name>
        <servlet-class>com.network.servlet.LoginServlet </servlet-class>
      </servlet>  <servlet-mapping>
        <servlet-name>LoginServlet </servlet-name>
        <url-pattern>/servlet/LoginServlet </url-pattern>
      </servlet-mapping>
    </web-app>action 对应LoginServlet 就行了!!
      

  5.   

    非常感谢,谢谢,问题解决了,的确是web.xml文件错了,
      

  6.   

    把你的servlet在web.xml中配置一下,注意一下路径