java - HTTP 状态 500 - 实例化 servlet 类 com.sar.pkg.MyServlet 时出错
问题描述
MyServlet.java
class MyServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
//private static final long serialVersionUID =102831973239L;
static String task;
public MyServlet(){
}
String tm;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
task = request.getParameter("task");
tm= request.getParameter("reminder_time");
try {
SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date time=new Date();
formatter.format(time);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/reminder","sarthak","sar31thak");
String INSERT_RECORD = "insert into ToDo values(?, ?)";
PreparedStatement pstmt = null;
pstmt = con.prepareStatement(INSERT_RECORD);
pstmt.setString(1, task);
pstmt.setDate(2, (java.sql.Date) time);
int rs= pstmt.executeUpdate();
if(rs!=0){
response.sendRedirect("success.html");
return;
}
else{
response.sendRedirect("error.html");
}
con.close();
}
catch(Exception e){
System.out.println("Got an EXCEPTION");}
}
catch (Exception e) {
System.out.println("Got an ERROR");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Alert</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>MyServlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.sar.pkg.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
</web-app>
导致以下错误
HTTP 状态 500 - 实例化 servlet 类 com.sar.pkg.MyServlet 时出错
类型异常报告
消息 实例化 servlet 类 com.sar.pkg.MyServlet 时出错
描述 服务器遇到一个内部错误,阻止它完成这个请求。
异常 javax.servlet.ServletException: 实例化 servlet 类 com.sar.pkg.MyServlet 时出错 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve. java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor。进程(AbstractHttp11Processor.java:1041)org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)java。 util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.lang.Thread.run(未知来源)
根本原因 java.lang.IllegalAccessException:类 org.apache.catalina.core.DefaultInstanceManager 无法使用修饰符“public” sun.reflect.Reflection.ensureMemberAccess(Unknown Source) 访问 com.sar.pkg.MyServlet 类的成员。 lang.Class.newInstance(Unknown Source) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina .valves.AccessLogValve.invoke(AccessLogValve.java:953) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) org .apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net。JioEndpoint$SocketProcessor.run(JIoEndpoint.java:310) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.lang.Thread.run(Unknown Source )
note Apache Tomcat/7.0.47 日志中提供了根本原因的完整堆栈跟踪。
我试图通过使用不同的 serialVersionID 来消除此错误,并在运行项目之前对其进行清理。仍然坚持这一点。请帮忙。提前致谢。
解决方案
您的 Servlet 类com.sar.pkg.MyServlet
不是公开的。你的定义
class MyServlet extends HttpServlet{
应该
public class MyServlet extends HttpServlet{
推荐阅读
- javascript - 从一个 JS 文件链接到另一个
- python - 禁用 Pyexcel 排序
- javascript - 如何在mysql db上存储文件
- scala - 为什么scala sortWith函数将Predicate作为输入
- java - 如何将 python 模块添加到 jython/lib?
- hibernate - Hibernate 抛出 java.lang.ClassNotFoundException: org.hibernate.internal.log.ConnectionPoolingLogger
- javascript - 世博会上传:带有发布渠道的 ios
- r - 如何根据r中另一个数据框中的第一列和另一列中的列连接2个数据框
- python - 如何在签名中修复 Tensorflow 1.14.0rc 中的“跨步切片分配与预期类型不兼容”?
- javafx - 如何将下拉按钮添加到表格视图中的列项目 - JavaFX