HTTP状态 500 - 内部服务器错误
来源:2-3 第一个Servlet
慕粉1712150383
2023-01-02 18:07:35
类型 异常报告 消息 实例化Servlet类[com.imooc.servlet.FirstServlet]异常 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 javax.servlet.ServletException: 实例化Servlet类[com.imooc.servlet.FirstServlet]异常 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:750) 根本原因。 java.lang.ClassNotFoundException: com.imooc.servlet.FirstServlet org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1372) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1195) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:750) ):注意 主要问题的全部 stack 信息可以在 server logs 里查看
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <servlet> <servlet-name>first</servlet-name> <servlet-class>com.imooc.servlet.FirstServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/hi</url-pattern> </servlet-mapping> </web-app>
package com.imooc.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; public class FirstServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("name"); String html = "<h1 style='color:red'>hi," + name + "!</h1><hr>"; System.out.println("返回给浏览器的响应内容为:" + html); PrintWriter out = resp.getWriter(); out.println(html); } }
相关截图:
第一次可以正常运行,重启tomcat第二次运行就报错了
1回答
好帮手慕小尤
2023-01-02
同学你好,根据上述报错信息:找不到FirstServlet类,这里应该是同学的out目录没有classes导致的,同学可参考如下两种方式解决:
1、如果是新创建项目,创建好项目后,先创建一个类,然后build Project,之后再配置tomcat,就不会出现out目录找不到classes文件的情况。
2、找到项目所在的本地目录,然后关闭IDEA,删除本地项目中的.idea目录,重新打开项目,配置web模块和tomcat,删除target和out目录,重新运行项目即可。
祝学习愉快!
相似问题
回答 1
回答 1
回答 2
回答 1
回答 1