【发布时间】:2019-12-13 10:15:43
【问题描述】:
您好,使用 apache Tomcat 编写代码,我不断收到上述内容。我已经检查了 Web.xml 路径
和web.xml的内容我没有发现任何错误
下面是我的代码和错误信息
index.jsp
FirstServlet
public class FirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
RequestDispatcher rd = req.getRequestDispatcher("index.jsp");
rd.forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String uid = req.getParameter("uid");
int ph = Integer.parseInt(req.getParameter("ph"));
HttpSession session = req.getSession();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
if (uid != null && ph < 0) {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306?user=root&password=Eagle&useSSL=false");
String sql = "select invno,phone from invnt.allinvoice where invno=? and phone=? ";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, uid);
pstmt.setInt(2, ph);
rs = pstmt.executeQuery();
String nid="";
int nph=0;
while (rs.next()) {
nid=rs.getString(1);
nph=rs.getInt(2);
}
if(uid==nid && ph==nph) {
RequestDispatcher rd = req.getRequestDispatcher("index.jsp");
rd.forward(req, resp);
}else{
RequestDispatcher rd = req.getRequestDispatcher("index.jsp");
rd.forward(req, resp);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
} else {
RequestDispatcher rd = req.getRequestDispatcher("index.jsp");
rd.forward(req, resp);
}
}
错误日志
javax.servlet.ServletException: Error instantiating servlet class [org.ran.FristServlet]
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)
Root Cause
java.lang.ClassNotFoundException: org.ran.FristServlet
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
【问题讨论】:
-
我发现了一个空格
<servlet-name> FirstServlet,它不是 First? -
@JoopEggen 删除了空间但同样的错误及其 FirstServlet
-
好吧,我刚刚将 servlet 从第一个重命名为第一个,并在每个地方都更改了它,但它的显示仍然像我没有注意到的那样
-
编译,创建.war部署。似乎该管道在某个地方出错了。也许其他人也有类似的经历。您可能会停止 tomcat,清理所有可能的目录并重试。