总是找不到servlet,不知道是不是我的软件问题,我的软件环境是jbuilder2006,sql server2000,操作系统winXP sp2
以下是问题代码: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 updatepro.updateservlet or a class it depends on
 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
 org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 java.lang.Thread.run(Thread.java:595)
root cause java.lang.ClassNotFoundException: updatepro.updateservlet
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)
 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
 org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
 org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 java.lang.Thread.run(Thread.java:595)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.Apache Tomcat/5.5.9

解决方案 »

  1.   

    可以从2个方面确认。
    1,如果用到了invoker,确认容器的web.xml文件中,invoker部分是否打开。
    2,如果没用,确认在你得web.xml中配置了servlet的映像。
      

  2.   


    root   cause   java.lang.ClassNotFoundException:   updatepro.updateservlet
    检查一下这个class是不是在WEB-INF/classes或lib里面的jar里。并且要注意是 updatepro/updateservlet.class, 注意前面的路径。_________________
    欢迎到我在技术圈的Java圈子做客:Java Guru
      

  3.   

    jsp的代码:<!--用来接收输入登陆名和口令-->
    <%@page contentType="text/html; charset=GBK"%>
    <html>
    <head>
    <title>login</title>
    </head>
    <body bgcolor="#ffffff">
    <h1 align="center">请登陆后更改个人信息</h1>
    <br/>
    <hr/>
    <br/>
    <form name="form1" action="updateservlet" method="post" >
    <table border="0" cellpadding="0" cellspacing="0" width="500px" align="center">
      <tr>
        <td width="150px">请输入登陆名:</td>
        <td width="350px">
          <input name="LoginName" type="text"/>
        </td>
      </tr>
      <tr>
        <td width="150px">请输入口令:</td>
        <td width="350px">
          <input name="PassWord" type="password" />
        </td>
      </tr>
      <tr>
        <td colspan="2">
          <input type="submit" value="登 陆" name="button1"/>
          &nbsp;&nbsp;&nbsp;&nbsp;
          <input type="reset" value="重 置" name="button2"/>
        </td>
      </tr>
    </table>
    </form>
    </body>
    </html>*******************************************分割线*********************************************
    servlet代码:
    package updatepro;import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import updatepro.DBBean;public class updateServlet extends HttpServlet {
        private static final String CONTENT_TYPE = "text/html; charset=GBK";
        Connection conn = null;
        Statement stat = null;
        PreparedStatement pstat = null;
        ResultSet rs = null;
        //HttpSession sess = new    //Initialize global variables
        public void init() throws ServletException {
        }
                //连接数据库
        public void getConn(){
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                conn = DriverManager.getConnection("jdbc:odbc:test","sa","");
                System.out.println("数据库连接成功!");
            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println(ex);
                System.out.println("连接数据库失败");
            }    }
        public void closeConn(){
            try {
                if(rs != null){
                    rs.close();
                }
                if(pstat != null){
                    pstat.close();
                }
                if(stat != null){
                    stat.close();
                }
                if(conn != null){
                    conn.close();
                }
                System.out.println("关库成功!");
            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("关库错误:" + ex);
            }
        }
        public ResultSet searchSql(String sql){
            //String sql = "select * from UserInfo";
            try {
                stat = conn.createStatement(1005,1008);
                rs = stat.executeQuery(sql);
                System.out.println("查询ok!");
            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("查询失败!");
            }
            return rs;
        }
        //Process the HTTP Get request
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {        //HttpSession sess = request.getSession();
            //String LoginName = (String)sess.getAttribute("LoginName");
            //String PassWord = (String)sess.getAttribute("PassWord");
    /***************************************************传值测试区域**************************************/
            String LoginName = request.getParameter("LoginName");
            System.out.println(LoginName);
            //if (LoginName == null) {
            //    LoginName = "";
            //}
            String PassWord = request.getParameter("PassWord");
            System.out.println(PassWord);
            //if (PassWord == null) {
              //  PassWord = "";
            //}        /*
            String UserName = request.getParameter("UserName");
            if (UserName == null) {
                UserName = "";
            }        int Age;
            try {
                Age = Integer.parseInt(request.getParameter("Age"));
            } catch (NumberFormatException e) {
                Age = 0;
            }
            String address = request.getParameter("address");
            if (address == null) {
                address = "";
            }
            */
            //this.getConn();
            //this.searchSql("select * from UserInfo where LoginName='"+LoginName+"' and PassWord='"+PassWord+"'");
            //this.closeConn();        response.setContentType(CONTENT_TYPE);
            PrintWriter out = response.getWriter();
            out.println("<html>");
            out.println("<head><title>updateServlet</title></head>");
            out.println("<body bgcolor=\"#ffffff\">");
            out.println(LoginName);
            out.print("<br/>");
            out.print(PassWord);
            out.println("</body>");
            out.println("</html>");
            out.close();    }    //Process the HTTP Post request
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            doGet(request, response);
        }    //Clean up resources
        public void destroy() {
        }
    }
      

  4.   

    你的web.xml有没有配置啊
    <servlet>
       <servlet-name>##</servlet-name>
       <servlet-class>###</servlet-class>
    </servlet>
    <servlet-mapping>
       <servlet-name>##</servlet-name>
       <url-pattern>##</url-pattern>
    </servlet-mapping>
      

  5.   

    xml文档是jbuilder自动生成的,不用配置的,servlet的名字我都是从web.xml里边查出来的