java - HTTP Status 500 - Error instantiating servlet class com.app.RegisterServlet -
i know there're similar questions still couldn't figure out. please me out. have attached directory structure in picture , rest codes listed follows click here see directory structure
index.html
<!doctype html> <html> <head> <meta charset="iso-8859-1"> <title>insert title here</title> </head> <body> <form action="reg" method="post"> rno:<input type="number" name="rno"><br> name:<input type="text" name="name"><br> mark:<input type="number" name="mark"><br><br> <input type="submit" value="register"> <input type="reset" value="clear"> </form> </body> </html>
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_3_0.xsd" id="webapp_id" version="3.0"> <servlet> <servlet-name>hi</servlet-name> <servlet-class>com.app.registerservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hi</servlet-name> <url-pattern>/reg</url-pattern> </servlet-mapping> </web-app>
registerservlet.java
package com.app; import java.io.ioexception; import java.io.printwriter; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import javax.servlet.genericservlet; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; public class registerservlet extends genericservlet{ private static final long serialversionuid = 1l; public void service(servletrequest request, servletresponse response) throws servletexception, ioexception { try { int rno=integer.parseint(request.getparameter("rno")); string name=request.getparameter("name"); float mark=float.parsefloat(request.getparameter("mark")); class.forname("oracle.jdbc.oracledriver"); connection con=drivermanager.getconnection("jdbc:oracle:thin:@localhost:1521:xe","fila","filimon"); preparedstatement pstmt=con.preparestatement("insert register values(?,?,?)"); pstmt.setint(1,rno); pstmt.setstring(2,name); pstmt.setfloat(3,mark); int count=pstmt.executeupdate(); con.commit(); printwriter out=response.getwriter(); response.setcontenttype("text/html"); if (count>0) { out.println("<html><body>successfully inserted</body></html>"); }else{ out.println("<html><body>nigga, try next time</body></html>"); } pstmt.close(); con.close(); }catch (exception e) { system.err.println(e); } }//service() }//registerservlet
thanks alot time, ow , error follows
type exception report message error instantiating servlet class com.app.registerservlet description server encountered internal error prevented fulfilling request. exception javax.servlet.servletexception: error instantiating servlet class com.app.registerservlet org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:505) org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:103) org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:956) org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:442) org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1083) org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:640) org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:318) java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) java.lang.thread.run(thread.java:745) root cause java.lang.classnotfoundexception: com.app.registerservlet org.apache.catalina.loader.webappclassloaderbase.loadclass(webappclassloaderbase.java:1892) org.apache.catalina.loader.webappclassloaderbase.loadclass(webappclassloaderbase.java:1735) org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:505) org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:103) org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:956) org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:442) org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1083) org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:640) org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:318) java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) java.lang.thread.run(thread.java:745)
the exception states classnotfoundexception, means servlet class not found instantiation. make sure servlet class (inclusive of package structure) [resent in web-inf/classes directory.
edit: after checking code
i have run code, below edited code (i commented of internal section):
package com.app;
import java.io.ioexception; import java.io.printwriter; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import javax.servlet.genericservlet; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; import javax.servlet.annotation.webservlet;
@webservlet(name="registerservlet",urlpatterns="/reg") public class registerservlet extends genericservlet{ private static final long serialversionuid = 1l;
public void service(servletrequest request, servletresponse response) throws servletexception, ioexception { try { system.out.println("printing servlet -----------------"); /*int rno=integer.parseint(request.getparameter("rno")); string name=request.getparameter("name"); float mark=float.parsefloat(request.getparameter("mark")); class.forname("oracle.jdbc.oracledriver"); connection con=drivermanager.getconnection("jdbc:oracle:thin:@localhost:1521:xe","fila","filimon"); preparedstatement pstmt=con.preparestatement("insert register values(?,?,?)"); pstmt.setint(1,rno); pstmt.setstring(2,name); pstmt.setfloat(3,mark); int count=pstmt.executeupdate(); con.commit();*/ printwriter out=response.getwriter(); response.setcontenttype("text/html"); out.println("<html><body>successfully inserted</body></html>"); /* if (count>0) { out.println("<html><body>successfully inserted</body> </html>"); }else{ out.println("<html><body>nigga, try next time</body></html>"); } pstmt.close(); con.close();*/ }catch (exception e) { system.err.println(e); } }//service()
}//registerservlet
i getting output :
<html><body>successfully inserted</body></html>
there nothing wrong framework, check database access , other logic, check if there exception, otherwise servlet should print.
Comments
Post a Comment