Struts Error
843836Apr 13 2005 — edited Apr 13 2005hi all,
using Struts i want to establish connection with database (using datasource )and retrieve records
I m getting the error
Servlet.init() for servlet action threw exception
can any body pls correct me
I m enclosing the code
//welcome.jsp
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html locale="true">
<head><title>Struts Example</title></head>
<body>
<font color="red">
<ol>
<html:errors/>
</ol>
</font>
<html:form action="/index.do" method="post">
<font size=6>Please enter the following Details </font>
<table border=0>
<tr><td>Full Name:</td><td><html:text property="fname"/></td></tr>
<tr><td>Phone(Residence):</td><td><html:text property="rphone"/></td></tr>
<tr><td>Phone(Mobile):</td><td><html:text property="mphone"/></td></tr>
<tr><td align="right"><html:submit value="Save"/></td><td align="left"><html:cancel value="Cancel"/></td></tr>
</table>
</html:form>
</body>
</html:html>
//struts-config.xml
struts-config>
<!-- Data Sources -->
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
<set-property property="url" value="jdbc:mysql://localhost:3306/test" />
<set-property property="user" value="Administrator" />
<set-property property="password" value="admin" />
</data-source>
</data-sources>
<!-- Form Beans -->
<form-beans>
<form-bean name="PhoneForm" type="roseindia.net.PhoneForm">
</form-bean>
</form-beans>
<!-- Global Exceptions -->
<global-exceptions>
</global-exceptions>
<!-- Global Forwards -->
<global-forwards>
</global-forwards>
<!-- Action Mappings -->
<action-mappings>
<action name="PhoneForm"
path="/index"
scope="request"
type="roseindia.net.PhoneAction"
validate="false" > <!-- whether to call validate method of Form class before executing perform method of action class -->
<forward name="success" path="/Thanks.jsp">
</forward>
<forward name="failure" path="/Welcome.jsp">
</forward>
</action>
</action-mappings>
<!-- Message Resources -->
<message-resources parameter="roseindia.net.ApplicationResources"/>
</struts-config>
//PhoneForm.java
package roseindia.net;
import org.apache.struts.action.ActionForm;
public class PhoneForm extends ActionForm{
private String fname;
private String rphone;
private String mphone;
public PhoneForm()
{}
//setter & getter method for name
public void setfname(String fname)
{
this.fname=fname;
}
public String getfname()
{
return fname;
}
//setter & getter method for buiness email
public void setrphone(String rphone)
{
this.rphone=rphone;
}
public String getrphone()
{
return rphone;
}
//setter & getter method for personal email
public void setmphone(String mphone)
{
this.mphone=mphone;
}
public String getmphone()
{
return mphone;
}
};
//PhoneAction.java
package roseindia.net;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
import java.sql.*;
import javax.sql.*;
public final class PhoneAction extends Action
{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
{
PhoneForm pform=(PhoneForm) form;
ActionForward forward=mapping.findForward("success");
String name=pform.getfname();
DataSource ds=null;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
try{
ds=getDataSource(request);
con=ds.getConnection();
stmt=con.createStatement();
System.out.println("connection successful....."+con);
stmt = con.createStatement();
rs = stmt.executeQuery("select * from test where name like '"+name+"'");
if(rs.next())
{
return (mapping.findForward("success"));
}
else
{
return (mapping.findForward("failure"));
}
}catch(Exception e)
{
e.printStackTrace();
}
return forward;
}
}
//web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp">
<display-name>Address Project</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Welcome.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</web-app>
Thanx