Win a copy of Svelte and Sapper in Action this week in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

Database Access problem

 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All

I am trying out struts example from the Struts Alive available for free download at TheServerSide.com

I am facing some problem accessing the database. I am using Tomcat5.0 & also have the commons-dbcp & commons-pool jar in the appropriate classpath.
I am using the HSQLDB as given in the book.


here is the db code for your perusal. Could somebody point where I am going wrong.


struts-config.xml
-----------------

<data-sources>
<data-source
type="org.apache.commons.dbcp.BasicDataSource"
key="userDB">
<set-property property="driverClassName"
value="org.hsqldb.jdbcDriver" />
<set-property property="url"
value="jdbc:hsqldb:c:/strutsTutorial/db" />
<set-property property="username" value="sa" />
<set-property property="password" value="" />
</data-source>
</data-sources>


build.xml
---------
<target name="builddb"
description="builds the database tables">
<sql driver="org.hsqldb.jdbcDriver"
userid="sa"
password=""
url="jdbc:hsqldb:c:/strutsTutorial/db">
<classpath>
<pathelement
path="C:/tools/hsqldb/lib/hsqldb.jar"/>
</classpath>
CREATE TABLE USER(
EMAIL VARCHAR(80),
FIRST_NAME VARCHAR(80),
LAST_NAME VARCHAR(80),
PASSWORD VARCHAR(11),
PHONE VARCHAR(11),
FAX VARCHAR(11),
CONSTRAINT USER_PK PRIMARY KEY
(EMAIL)
);
</sql>
</target>


Action class
-------------
import java.sql.Connection;
import javax.sql.DataSource;
import java.sql.PreparedStatement;


public class UserRegistrationAction extends Action {

static Category cat = Category.getInstance( UserRegistrationAction.class.getName());


public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
throws Exception {

DataSource dataSource =getDataSource(request);
Connection conn = dataSource.getConnection();
UserRegistrationForm userForm =(UserRegistrationForm) form;

----------
some more code
----------


try{
PreparedStatement statement = conn.prepareStatement(
"insert into USER " +
"(EMAIL, FIRST_NAME, LAST_NAME, PASSWORD, PHONE, FAX)" +
" values (?,?,?,?,?,?)");
statement.setString(1,userForm.getEmail());
statement.setString(2,userForm.getFirstName());
statement.setString(3,userForm.getLastName());
statement.setString(4,userForm.getPassword());
statement.setString(5,userForm.getPhone());
statement.setString(6,userForm.getFax());
statement.executeUpdate();
}finally{
conn.close();
}


return mapping.findForward("success");
}
}

The error which I get on the browser

----------------------------------------------------------------------------

HTTP Status 404 - Servlet action is not available

type Status report

message Servlet action is not available

description The requested resource (Servlet action is not available) is not available.


Apache Tomcat/5.0.28

----------------------------------------------------------------------------

The moment i remove the database tags from the struts-config.xml & the db code from Action class everything works fine

Kindly respond

Rgrds
RAHIL
 
Don't get me started about those stupid light bulbs.
    Bookmark Topic Watch Topic
  • New Topic