总是找不到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
以下是问题代码: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,如果用到了invoker,确认容器的web.xml文件中,invoker部分是否打开。
2,如果没用,确认在你得web.xml中配置了servlet的映像。
root cause java.lang.ClassNotFoundException: updatepro.updateservlet
检查一下这个class是不是在WEB-INF/classes或lib里面的jar里。并且要注意是 updatepro/updateservlet.class, 注意前面的路径。_________________
欢迎到我在技术圈的Java圈子做客:Java Guru
<%@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"/>
<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() {
}
}
<servlet>
<servlet-name>##</servlet-name>
<servlet-class>###</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>##</servlet-name>
<url-pattern>##</url-pattern>
</servlet-mapping>