Ok. I am running Tomcat and I have a jsp page calling a servlet. When I submit the form contained in the jsp page, I get the following error:
The server encountered an internal error () that prevented it from fulfilling this request.
javax.servlet.ServletException: Wrapper cannot find servlet class Login or a class it depends on
at org.apache.catalina.core.StandardWra
pper.loadS
ervlet(Sta
ndardWrapp
er.java:88
0)
at org.apache.catalina.core.StandardWra
pper.alloc
ate(Standa
rdWrapper.
java:658)
at org.apache.catalina.core.StandardWra
pperValve.
invoke(Sta
ndardWrapp
erValve.ja
va:214)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.catalina.core.StandardCon
textValve.
invoke(Sta
ndardConte
xtValve.ja
va:191)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.catalina.core.StandardCon
text.invok
e(Standard
Context.ja
va:2396)
at org.apache.catalina.core.StandardHos
tValve.inv
oke(Standa
rdHostValv
e.java:180
)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.valves.ErrorDisp
atcherValv
e.invoke(E
rrorDispat
cherValve.
java:170)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
1)
at org.apache.catalina.valves.ErrorRepo
rtValve.in
voke(Error
ReportValv
e.java:172
)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
1)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.catalina.core.StandardEng
ineValve.i
nvoke(Stan
dardEngine
Valve.java
:174)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.coyote.tomcat4.CoyoteAdap
ter.servic
e(CoyoteAd
apter.java
:223)
at org.apache.coyote.http11.Http11Proce
ssor.proce
ss(Http11P
rocessor.j
ava:405)
at org.apache.coyote.http11.Http11Proto
col$Http11
Connection
Handler.pr
ocessConne
ction(Http
11Protocol
.java:380)
at org.apache.tomcat.util.net.TcpWorker
Thread.run
It(PoolTcp
Endpoint.j
ava:508)
at org.apache.tomcat.util.threads.Threa
dPool$Cont
rolRunnabl
e.run(Thre
adPool.jav
a:533)
at java.lang.Thread.run(Thread.java:536
)
root cause
java.lang.ClassNotFoundException: Login
at org.apache.catalina.loader.WebappCla
ssLoader.l
oadClass(W
ebappClass
Loader.jav
a:1428)
at org.apache.catalina.loader.WebappCla
ssLoader.l
oadClass(W
ebappClass
Loader.jav
a:1274)
at org.apache.catalina.core.StandardWra
pper.loadS
ervlet(Sta
ndardWrapp
er.java:87
4)
at org.apache.catalina.core.StandardWra
pper.alloc
ate(Standa
rdWrapper.
java:658)
at org.apache.catalina.core.StandardWra
pperValve.
invoke(Sta
ndardWrapp
erValve.ja
va:214)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.catalina.core.StandardCon
textValve.
invoke(Sta
ndardConte
xtValve.ja
va:191)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.catalina.core.StandardCon
text.invok
e(Standard
Context.ja
va:2396)
at org.apache.catalina.core.StandardHos
tValve.inv
oke(Standa
rdHostValv
e.java:180
)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.valves.ErrorDisp
atcherValv
e.invoke(E
rrorDispat
cherValve.
java:170)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
1)
at org.apache.catalina.valves.ErrorRepo
rtValve.in
voke(Error
ReportValv
e.java:172
)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
1)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.catalina.core.StandardEng
ineValve.i
nvoke(Stan
dardEngine
Valve.java
:174)
at org.apache.catalina.core.StandardPip
eline$Stan
dardPipeli
neValveCon
text.invok
eNext(Stan
dardPipeli
ne.java:64
3)
at org.apache.catalina.core.StandardPip
eline.invo
ke(Standar
dPipeline.
java:480)
at org.apache.catalina.core.ContainerBa
se.invoke(
ContainerB
ase.java:9
95)
at org.apache.coyote.tomcat4.CoyoteAdap
ter.servic
e(CoyoteAd
apter.java
:223)
at org.apache.coyote.http11.Http11Proce
ssor.proce
ss(Http11P
rocessor.j
ava:405)
at org.apache.coyote.http11.Http11Proto
col$Http11
Connection
Handler.pr
ocessConne
ction(Http
11Protocol
.java:380)
at org.apache.tomcat.util.net.TcpWorker
Thread.run
It(PoolTcp
Endpoint.j
ava:508)
at org.apache.tomcat.util.threads.Threa
dPool$Cont
rolRunnabl
e.run(Thre
adPool.jav
a:533)
at java.lang.Thread.run(Thread.java:536
)
Here is the important part of the jsp file:
...
<BR><FORM ACTION="
http://myDomain.com/MyApp/servlet/webstudent.Login" METHOD=POST>
<TABLE>
<TR>
<TD>StudentID:</TD>
<TD><INPUT TYPE=TEXT NAME=StudentID></TD>
</TR>
<TR>
<TD>Password:</TD>
<TD><INPUT TYPE=PASSWORD NAME=Password></TD>
</TR>
<TR>
<TD ALIGN=RIGHT COLSPAN=2>
<INPUT TYPE=SUBMIT VALUE=Login></TD>
...
and here is the servlet:
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
HttpSession session = request.getSession(true); //Create a session if one doesn't exist
session.setAttribute("loggedIn", new String("true"));
String StudentID = request.getParameter("StudentID");
String Password = request.getParameter("Password");
String FirstName;
String LastName;
String Course;
String Semester;
String trans = "0";
session.setAttribute("trans",trans);
try
{
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/e
nv");
DataSource ds = (DataSource)envCtx.lookup("jdbc/Prot
otypeBooks
");
Connection con = ds.getConnection();
Statement s = con.createStatement();
String sql = "SELECT * FROM Students WHERE StudentID='" + StudentID + "' AND Password='" + Password + "'";
ResultSet rs = s.executeQuery(sql);
if (rs.next())
{
session.setAttribute("loggedIn","tru
e");
FirstName = rs.getString("FirstName");
LastName = rs.getString("LastName");
Course = rs.getString("Course");
Semester = rs.getString("Semester");
Student myStudent = new Student(StudentID,LastName,FirstName
,Course,Se
mester);
session.setAttribute("myStudent",myS
tudent);
}
rs.close();
s.close();
con.close();
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
if((String) session.getAttribute("loggedIn") == "true")
{
System.out.println("The login was executed flawlessly");
response.sendRedirect("
http://myDomain.com/jsp/choose.jsp");
}
else
{
String error = "error";
session.setAttribute("error",error);
response.sendRedirect("
http://myDomain.com/jsp/Login.jsp");
}
}
Any help would be appreciated.... WITH POINTS ;)