Jagadeesh M
asked on
Struts - Error....Please help
Hi Guys,
I'm getting the following EXCEPTION while running the basic struts applicaiton -
exception
javax.servlet.ServletExcep tion: Cannot retrieve mapping for action /login
org.apache.jasper.runtime. PageContex tImpl.doHa ndlePageEx ception(Pa geContextI mpl.java:8 25)
org.apache.jasper.runtime. PageContex tImpl.hand lePageExce ption(Page ContextImp l.java:758 )
org.apache.jsp.index_jsp._ jspService (index_jsp .java:113)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:3 24)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
root cause
javax.servlet.jsp.JspExcep tion: Cannot retrieve mapping for action /login
org.apache.struts.taglib.h tml.FormTa g.lookup(F ormTag.jav a:810)
org.apache.struts.taglib.h tml.FormTa g.doStartT ag(FormTag .java:506)
org.apache.strutsel.taglib .html.ELFo rmTag.doSt artTag(ELF ormTag.jav a:324)
org.apache.jsp.index_jsp._ jspx_meth_ html_form_ 0(index_js p.java:194 )
org.apache.jsp.index_jsp._ jspService (index_jsp .java:103)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:3 24)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
Here are my files
index.jsp
<%@ page contentType="text/html;cha rset=UTF-8 " language="java" %>
<%-- JSTL tag libs --%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<%-- Struts provided Taglibs --%>
<%@ taglib prefix="html" uri="/WEB-INF/struts-html- el.tld" %>
<html:html locale="true"/>
<head>
<fmt:setBundle basename="ApplicationResou rces" />
<title><fmt:message key="login.title"/></title >
</head>
<body>
<html:errors property="login"/>
<html:form action="login.do" focus="userName">
<table align="center">
<tr align="center">
<td><H1><fmt:message key="login.message"/></H1> </td>
</tr>
<tr align="center">
<td>
<table align="center">
<tr>
<td align="right">
<fmt:message key="login.username"/>
</td>
<td align="left">
<html:text property="userName"
size="15"
maxlength="15" />
<html:errors property="userName" />
</td>
</tr>
<tr>
<td align="right">
<fmt:message key="login.password"/>
</td>
<td align="left">
<html:password property="password"
size="15"
maxlength="15"
redisplay="false"/>
<html:errors property="password" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<html:submit>
<fmt:message key="login.button.signon"/ >
</html:submit>
</td>
</tr>
</table>
</td>
</tr>
</table>
</html:form>
</body>
</html>
loggedin.jsp
<%@ page contentType="text/html;cha rset=UTF-8 " language="java" %>
<%-- JSTL tag libs --%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<%-- Struts provided Taglibs --%>
<%@ taglib uri="/WEB-INF/struts-html- el.tld" prefix="html" %>
<html:html locale="true"/>
<head>
<fmt:setBundle basename="ApplicationResou rces" />
<title><fmt:message key="loggedin.title"/></ti tle>
</head>
<body>
<H2>
<fmt:message key="loggedin.msg">
<fmt:param value='${requestScope.user Name}' />
</fmt:message>
</H2>
</body>
</html>
LoginForm.java
/**
*
*/
package dummies.struts;
import javax.servlet.http.HttpSer vletReques t;
import org.apache.struts.action.A ctionError ;
import org.apache.struts.action.A ctionError s;
import org.apache.struts.action.A ctionForm;
import org.apache.struts.action.A ctionMappi ng;
/**
* @author Jagadeesh Motamarri
* Jul 17, 2006
*/
public class LoginForm extends ActionForm {
private String userName;
private String password;
public void reset(ActionMapping mapping, HttpServletRequest request){
userName="";
password="";
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
ActionErrors errors = new ActionErrors();
if((userName==null) || (userName.length()<1))
errors.add("userName",new ActionError("error.usernam e.required "));
if((password==null) || (password.length()<1))
errors.add("password",new ActionError("error.passwor d.required "));
return errors;
}
/**
* @return Returns the password.
*/
public String getPassword() {
return password;
}
/**
* @param password The password to set.
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return Returns the userName.
*/
public String getUserName() {
return userName;
}
/**
* @param userName The userName to set.
*/
public void setUserName(String userName) {
this.userName = userName;
}
}
LoginBean.java
package dummies.struts;
import java.util.HashMap;
/**
* @author Mike Robinson
*
*/
public class LoginBean
{
private HashMap validUsers = new HashMap();
/**
* Constructor for LoginBean
* Initializes the list of usernames/passwords
*/
public LoginBean()
{
validUsers.put("Twinkle Toes","tt");
validUsers.put("administra tor","admi n");
validUsers.put("Barbara Smith","smitty");
}
/**
* determine if the username/password combination are
* present in the validUsers repository.
* @param userName
* @param password
* @return boolean true if valid, false otherwise
*/
public boolean validateUser(String userName, String password)
{
if(validUsers.containsKey( userName))
{
String thePassword = (String)validUsers.get(use rName);
if(thePassword.equals(pass word))
return true;
}
return false;
}
}
LoginAction.java
package dummies.struts;
import javax.servlet.http.HttpSer vletReques t;
import javax.servlet.http.HttpSer vletRespon se;
import org.apache.struts.action.A ction;
import org.apache.struts.action.A ctionError ;
import org.apache.struts.action.A ctionError s;
import org.apache.struts.action.A ctionForm;
import org.apache.struts.action.A ctionForwa rd;
import org.apache.struts.action.A ctionMappi ng;
/**
* @author Mike Robinson
*
*/
public class LoginAction extends Action
{
/**
* Handles user's request for login
* @param mapping
* @param form
* @param request
* @param response
* @throws Exception
* @return ActionForward
*/
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
// create a new LoginBean with valid users in it
LoginBean lb = new LoginBean();
// check to see if this user/password combination are valid
if(lb.validateUser(((Login Form)form) .getUserNa me(),((Log inForm)for m).getPass word()))
{
request.setAttribute("user Name",((Lo ginForm)fo rm).getUse rName());
return (mapping.findForward("succ ess"));
}
else // username/password not validated
{
// create ActionError and save in the request
ActionErrors errors = new ActionErrors();
ActionError error = new ActionError("error.login.i nvalid");
errors.add("login",error);
saveErrors(request,errors) ;
return (mapping.findForward("fail ure"));
}
}
}
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<!-- This is the Struts configuration file for the Login example application -->
<struts-config>
<!-- ========== Form Bean Definitions ========================== ========= -->
<form-beans>
<form-bean name="LoginForm"
type="dummies.struts.Login Form"/>
</form-beans>
<!-- ========== Action Mapping Definitions ========================== ==== -->
<action-mappings>
<action path="/Login"
type="dummies.struts.Login Action"
name="LoginForm"
scope="request"
input="/index.jsp"
validate="true">
<forward name="failure" path="/index.jsp"/>
<forward name="success" path="/loggedin.jsp"/>
</action>
</action-mappings>
<!-- ========== Message Resources Definitions ========================== = -->
<message-resources null="false"
parameter="ApplicationReso urces"/>
</struts-config>
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<!-- Action Servlet Configuration -->
<servlet>
<servlet-name>action</serv let-name>
<servlet-class>org.apache. struts.act ion.Action Servlet</s ervlet-cla ss>
<init-param>
<param-name>config</param- name>
<param-value>/WEB-INF/stru ts-config. xml</param -value>
</init-param>
<load-on-startup>1</load-o n-startup>
</servlet>
<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</serv let-name>
<url-pattern>*.do</url-pat tern>
</servlet-mapping>
<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</w elcome-fil e>
</welcome-file-list>
<!-- JSTL Tag Library Descriptor -->
<taglib>
<taglib-uri>/WEB-INF/c.tld </taglib-u ri>
<taglib-location>/WEB-INF/ c.tld</tag lib-locati on>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/fmt.t ld</taglib -uri>
<taglib-location>/WEB-INF/ fmt.tld</t aglib-loca tion>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/sql.t ld</taglib -uri>
<taglib-location>/WEB-INF/ sql.tld</t aglib-loca tion>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/x.tld </taglib-u ri>
<taglib-location>/WEB-INF/ x.tld</tag lib-locati on>
</taglib>
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/strut s-bean-el. tld</tagli b-uri>
<taglib-location>/WEB-INF/ struts-bea n-el.tld</ taglib-loc ation>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/strut s-html-el. tld</tagli b-uri>
<taglib-location>/WEB-INF/ struts-htm l-el.tld</ taglib-loc ation>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/strut s-logic-el .tld</tagl ib-uri>
<taglib-location>/WEB-INF/ struts-log ic-el.tld< /taglib-lo cation>
</taglib>
</web-app>
_____Urgent help required.
Thank You,
____Jags,.
I'm getting the following EXCEPTION while running the basic struts applicaiton -
exception
javax.servlet.ServletExcep
org.apache.jasper.runtime.
org.apache.jasper.runtime.
org.apache.jsp.index_jsp._
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
root cause
javax.servlet.jsp.JspExcep
org.apache.struts.taglib.h
org.apache.struts.taglib.h
org.apache.strutsel.taglib
org.apache.jsp.index_jsp._
org.apache.jsp.index_jsp._
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
Here are my files
index.jsp
<%@ page contentType="text/html;cha
<%-- JSTL tag libs --%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<%-- Struts provided Taglibs --%>
<%@ taglib prefix="html" uri="/WEB-INF/struts-html-
<html:html locale="true"/>
<head>
<fmt:setBundle basename="ApplicationResou
<title><fmt:message key="login.title"/></title
</head>
<body>
<html:errors property="login"/>
<html:form action="login.do" focus="userName">
<table align="center">
<tr align="center">
<td><H1><fmt:message key="login.message"/></H1>
</tr>
<tr align="center">
<td>
<table align="center">
<tr>
<td align="right">
<fmt:message key="login.username"/>
</td>
<td align="left">
<html:text property="userName"
size="15"
maxlength="15" />
<html:errors property="userName" />
</td>
</tr>
<tr>
<td align="right">
<fmt:message key="login.password"/>
</td>
<td align="left">
<html:password property="password"
size="15"
maxlength="15"
redisplay="false"/>
<html:errors property="password" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<html:submit>
<fmt:message key="login.button.signon"/
</html:submit>
</td>
</tr>
</table>
</td>
</tr>
</table>
</html:form>
</body>
</html>
loggedin.jsp
<%@ page contentType="text/html;cha
<%-- JSTL tag libs --%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<%-- Struts provided Taglibs --%>
<%@ taglib uri="/WEB-INF/struts-html-
<html:html locale="true"/>
<head>
<fmt:setBundle basename="ApplicationResou
<title><fmt:message key="loggedin.title"/></ti
</head>
<body>
<H2>
<fmt:message key="loggedin.msg">
<fmt:param value='${requestScope.user
</fmt:message>
</H2>
</body>
</html>
LoginForm.java
/**
*
*/
package dummies.struts;
import javax.servlet.http.HttpSer
import org.apache.struts.action.A
import org.apache.struts.action.A
import org.apache.struts.action.A
import org.apache.struts.action.A
/**
* @author Jagadeesh Motamarri
* Jul 17, 2006
*/
public class LoginForm extends ActionForm {
private String userName;
private String password;
public void reset(ActionMapping mapping, HttpServletRequest request){
userName="";
password="";
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
ActionErrors errors = new ActionErrors();
if((userName==null) || (userName.length()<1))
errors.add("userName",new ActionError("error.usernam
if((password==null) || (password.length()<1))
errors.add("password",new ActionError("error.passwor
return errors;
}
/**
* @return Returns the password.
*/
public String getPassword() {
return password;
}
/**
* @param password The password to set.
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return Returns the userName.
*/
public String getUserName() {
return userName;
}
/**
* @param userName The userName to set.
*/
public void setUserName(String userName) {
this.userName = userName;
}
}
LoginBean.java
package dummies.struts;
import java.util.HashMap;
/**
* @author Mike Robinson
*
*/
public class LoginBean
{
private HashMap validUsers = new HashMap();
/**
* Constructor for LoginBean
* Initializes the list of usernames/passwords
*/
public LoginBean()
{
validUsers.put("Twinkle Toes","tt");
validUsers.put("administra
validUsers.put("Barbara Smith","smitty");
}
/**
* determine if the username/password combination are
* present in the validUsers repository.
* @param userName
* @param password
* @return boolean true if valid, false otherwise
*/
public boolean validateUser(String userName, String password)
{
if(validUsers.containsKey(
{
String thePassword = (String)validUsers.get(use
if(thePassword.equals(pass
return true;
}
return false;
}
}
LoginAction.java
package dummies.struts;
import javax.servlet.http.HttpSer
import javax.servlet.http.HttpSer
import org.apache.struts.action.A
import org.apache.struts.action.A
import org.apache.struts.action.A
import org.apache.struts.action.A
import org.apache.struts.action.A
import org.apache.struts.action.A
/**
* @author Mike Robinson
*
*/
public class LoginAction extends Action
{
/**
* Handles user's request for login
* @param mapping
* @param form
* @param request
* @param response
* @throws Exception
* @return ActionForward
*/
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
// create a new LoginBean with valid users in it
LoginBean lb = new LoginBean();
// check to see if this user/password combination are valid
if(lb.validateUser(((Login
{
request.setAttribute("user
return (mapping.findForward("succ
}
else // username/password not validated
{
// create ActionError and save in the request
ActionErrors errors = new ActionErrors();
ActionError error = new ActionError("error.login.i
errors.add("login",error);
saveErrors(request,errors)
return (mapping.findForward("fail
}
}
}
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<!-- This is the Struts configuration file for the Login example application -->
<struts-config>
<!-- ========== Form Bean Definitions ==========================
<form-beans>
<form-bean name="LoginForm"
type="dummies.struts.Login
</form-beans>
<!-- ========== Action Mapping Definitions ==========================
<action-mappings>
<action path="/Login"
type="dummies.struts.Login
name="LoginForm"
scope="request"
input="/index.jsp"
validate="true">
<forward name="failure" path="/index.jsp"/>
<forward name="success" path="/loggedin.jsp"/>
</action>
</action-mappings>
<!-- ========== Message Resources Definitions ==========================
<message-resources null="false"
parameter="ApplicationReso
</struts-config>
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<!-- Action Servlet Configuration -->
<servlet>
<servlet-name>action</serv
<servlet-class>org.apache.
<init-param>
<param-name>config</param-
<param-value>/WEB-INF/stru
</init-param>
<load-on-startup>1</load-o
</servlet>
<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</serv
<url-pattern>*.do</url-pat
</servlet-mapping>
<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</w
</welcome-file-list>
<!-- JSTL Tag Library Descriptor -->
<taglib>
<taglib-uri>/WEB-INF/c.tld
<taglib-location>/WEB-INF/
</taglib>
<taglib>
<taglib-uri>/WEB-INF/fmt.t
<taglib-location>/WEB-INF/
</taglib>
<taglib>
<taglib-uri>/WEB-INF/sql.t
<taglib-location>/WEB-INF/
</taglib>
<taglib>
<taglib-uri>/WEB-INF/x.tld
<taglib-location>/WEB-INF/
</taglib>
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/strut
<taglib-location>/WEB-INF/
</taglib>
<taglib>
<taglib-uri>/WEB-INF/strut
<taglib-location>/WEB-INF/
</taglib>
<taglib>
<taglib-uri>/WEB-INF/strut
<taglib-location>/WEB-INF/
</taglib>
</web-app>
_____Urgent help required.
Thank You,
____Jags,.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
i'm getting this exception now -
exception
javax.servlet.ServletExcep
org.apache.jasper.runtime.
org.apache.jasper.runtime.
org.apache.jsp.index_jsp._
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
root cause
javax.servlet.jsp.JspExcep
org.apache.struts.taglib.h
org.apache.struts.taglib.h
org.apache.strutsel.taglib
org.apache.jsp.index_jsp._
org.apache.jsp.index_jsp._
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer