Data Access Object and session bean
arupsarkar Jan 13, 2004 12:19 PMHi,
I created a session bean, and trying to access data access object, the dao is created via xdoclet tags, when I am running the client the output just prints out the messages in the bean and does not enter the dao at all.
JBoss 3.2.1/MySql 4.x/Eclipse 3.0 integrated with lomboz.
I would appreciate if someone could help me. What am I missing.
Regards
Arup
package zen.com.store.session;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
* @ejb.bean name="StoreAccess"
* jndi-name="StoreAccessBean"
* type="Stateless"
*
* @ejb.dao
* class="zen.com.store.session.StoreAccessDAO"
* impl-class="zen.com.store.util.dao.StoreAccessDAOImpl"
*
* @ejb.resource-ref res-ref-name="jdbc/MySqlDS"
* res-type="javax.sql.Datasource"
* res-auth="Container"
*
* @jboss.resource-ref res-ref-name="jdbc/MySqlDS"
* jndi-name="java:/MySqlDS"
*
**/
public abstract class StoreAccessBean implements SessionBean {
protected SessionContext ctx;
/**
* @ejb.interface-method
* view-type="remote"
* @dao.call name="loginUser"
*
**/
public String loginUser(String username, String password){
System.out.println("Entering StoreAccessBean");
//String userID = StoreAccessDAOImpl.loginUser("ANDY", "PASSWD");
//System.out.println(userID);
System.out.println("Leaving StoreAccessBean");
// -start
// -end
return null;
} //loginUser
/**
* Sets the param context
* @param javax.ejb.SessionContext the new ctx value
**/
public void setSessionContext(SessionContext ctx){
this.ctx = ctx;
} //setSessionContext
/**
* Unsets the SessionContext
*
*/
public void unsetSessionContext(){
this.ctx = null;
}// unsetSessionContext
}
/***************** dao code **********/
package zen.com.store.util.dao;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* @author asarkar
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class StoreAccessDAOImpl {
private DataSource jdbcFactory;
public void init(){
System.out.println("Entering StoreAccessDAOImpl.init()");
InitialContext c = null;
if(jdbcFactory == null){
try{
c = new InitialContext();
//jdbcFactory = (DataSource)c.lookup("java:comp/env/jdbc/MySqlDS");
jdbcFactory = (DataSource)c.lookup("java:/jdbc/MySqlDS");
}catch(Exception e){
System.out.println("Error in StoreAccessDAOImpl.init()" + e.toString());
}
}
System.out.println("Leaving StoreAccessDAOImpl.init()");
}
/**
*
*/
public String loginUser(String username, String password){
System.out.println("Entering StoreAccessDAOImpl.loginUser()");
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
String userID = null;
try{
conn = jdbcFactory.getConnection();
String queryString = "select userid from storeaccess where username = ? and password = ?";
ps = conn.prepareStatement(queryString);
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
boolean result = rs.next();
if(result){
userID = rs.getString(1);
System.out.println("User Id : " + userID);
}
}catch(SQLException e){
System.out.println("Error in StoreAccessBean.loginUser()" + e.toString());
}finally{
try{
rs.close();
ps.close();
conn.close();
}catch(Exception e){
System.out.println("Final Error in StoreAccessBean.loginUser()" + e.toString());
}
}
System.out.println("Leaving StoreAccessDAOImpl.loginUser()");
return userID;
} //loginUser
}