Getting exception

Hi,

I am working in Java studio creator and new to this. I am creating a login page. I have used CachedRowSetDataProvider to access database. Following is the code added in sessionBean to check username and password :

CachedRowSetDataProvider userDataProvider = getlogin().getuserDataProvider();

CachedRowSetXImpl userRowSet = getSessionBean1().userRowSet();

try {

if (userDataProvider instanceof RefreshableDataProvider)

userDataProvider.refresh();

userDataProvider.setCursorRow(userDataProvider.findFirst("USER.USERNAME", userName));

correctUserName = (String)userDataProvider.getValue("USER.USERNAME");

correctPassword = (String)userDataProvider.getValue("USER.USER_PASSWORD");

userRowSet.release();

userRowSet.close();

} catch (Exception e) {

error("Cannot read USERS database: " + e.getMessage());

log("Cannot read USERS database: ", e);

userRowSet.close();

return false;

}

log("CorrectUserName="+correctUserName);

if (userName.equals(correctUserName) && password.equals(correctPassword)) {

/*Setting the properties of environment on proper login*/

setNavigate("Logout");

setUserLabel(userName);

return true;

} else if (userName.equals("Guest") && password.equals("guest")) {

/*The login button remains as it is, so setNavigate has not been touched here.*/

/*userLabel has been reset here coz if after some unsuccessful login attempts,

*user logs in as Guest, then the app should welcome him as guest only*/

setUserLabel("Guest");

/*The login button will change to 'logout' only on successgul login, so need to

*touch it here*/

return true;

}

Where "USER" is user table. I am getting following excetion against the :

java.lang.IIegalArgumentException: USER.USERNAME

Please help me out. Tell me where the code is wrong.

I'll be highly thankful.

Regards

Divya

[2019 byte] By [divya196] at [2007-11-26 9:00:15]
# 1

It appears you cannot call a table "USER" in JSC. I had trouble with when trying to integrate it with a mySQL database. I worked around by creating a view of the table and with SELECT * FROM user

, however if you don't admininster the data base or want to change the data on the database, you may need to find a different soloution.

jwhiteley at 2007-7-6 23:04:41 > top of Java-index,Development Tools,Java Tools...
# 2

package catalyst;

import com.sun.rave.web.ui.appbase.AbstractSessionBean;

import javax.faces.FacesException;

import userManager.loginBean;

import com.sun.data.provider.impl.CachedRowSetDataProvider;

import com.sun.sql.rowset.CachedRowSetXImpl;

/**

*

Session scope data bean for your application. Create properties

* here to represent cached data that should be made available across

* multiple HTTP requests for an individual user.

*

*

An instance of this class will be created for you automatically,

* the first time your application evaluates a value binding expression

* or method binding expression that references a managed bean using

* this class.

*/

public class SessionBean1 extends AbstractSessionBean {

// <editor-fold defaultstate="collapsed" desc="Creator-managed Component Definition">

private int __placeholder;

/**

*

Automatically managed component initialization. <strong>WARNING:</strong>

* This method is automatically generated, so any user-specified code inserted

* here is subject to being replaced.

*/

private void _init() throws Exception {

gbl_admin_user_mstRowSet.setDataSourceName("java:comp/env/jdbc/catalyst");

gbl_admin_user_mstRowSet.setCommand("SELECT ALL CATALYST.GBL_ADMIN_USER_MST.USER_ID, \nCATALYST.GBL_ADMIN_USER_MST.USERNAME, \nCATALYST.GBL_ADMIN_USER_MST.USER_PASSWORD, \nCATALYST.GBL_ADMIN_USER_MST.STATUS_CODE \nFROM CATALYST.GBL_ADMIN_USER_MST ");

gbl_admin_user_mstRowSet.setTableName("GBL_ADMIN_USER_MST");

}

private CachedRowSetXImpl gbl_admin_user_mstRowSet = new CachedRowSetXImpl();

public CachedRowSetXImpl getGbl_admin_user_mstRowSet() {

return gbl_admin_user_mstRowSet;

}

public void setGbl_admin_user_mstRowSet(CachedRowSetXImpl crsxi) {

this.gbl_admin_user_mstRowSet = crsxi;

}

// </editor-fold>

/**

*

Construct a new session data bean instance.

*/

public SessionBean1() {

}

/**

*

Return a reference to the scoped data bean.

*/

protected ApplicationBean1 getApplicationBean1() {

return (ApplicationBean1)getBean("ApplicationBean1");

}

/**

*

This method is called when this bean is initially added to

* session scope. Typically, this occurs as a result of evaluating

* a value binding or method binding expression, which utilizes the

* managed bean facility to instantiate this bean and store it into

* session scope.

*

*

You may customize this method to initialize and cache data values

* or resources that are required for the lifetime of a particular

* user session.

*/

public void init() {

loginBean = new loginBean();

// Perform initializations inherited from our superclass

super.init();

// Perform application initialization that must complete

// *before* managed components are initialized

// TODO - add your own initialiation code here

// <editor-fold defaultstate="collapsed" desc="Creator-managed Component Initialization">

// Initialize automatically managed components

// *Note* - this logic should NOT be modified

try {

_init();

} catch (Exception e) {

log("SessionBean1 Initialization Failure", e);

throw e instanceof FacesException ? (FacesException) e: new FacesException(e);

}

// </editor-fold>

// Perform application initialization that must complete

// *after* managed components are initialized

// TODO - add your own initialization code here

}

/**

*

This method is called when the session containing it is about to be

* passivated. Typically, this occurs in a distributed servlet container

* when the session is about to be transferred to a different

* container instance, after which the <code>activate()</code> method

* will be called to indicate that the transfer is complete.

*

*

You may customize this method to release references to session data

* or resources that can not be serialized with the session itself.

*/

public void passivate() {

}

/**

*

This method is called when the session containing it was

* reactivated.

*

*

You may customize this method to reacquire references to session

* data or resources that could not be serialized with the

* session itself.

*/

public void activate() {

}

/**

*

This method is called when this bean is removed from

* session scope. Typically, this occurs as a result of

* the session timing out or being terminated by the application.

*

*

You may customize this method to clean up resources allocated

* during the execution of the <code>init()</code> method, or

* at any later time during the lifetime of the application.

*/

public void destroy() {

}

/**

* Holds value of property loginBean.

*/

private userManager.loginBean loginBean;

/**

* Getter for property loginBean.

* @return Value of property loginBean.

*/

public userManager.loginBean getLoginBean() {

return this.loginBean;

}

/**

* Setter for property loginBean.

* @param loginBean New value of property loginBean.

*/

public void setLoginBean(userManager.loginBean loginBean) {

this.loginBean = loginBean;

}

}

This is the code for session Bean in which i have called query select * from user using cahedRowSet.

divya196 at 2007-7-6 23:04:41 > top of Java-index,Development Tools,Java Tools...