hi,

I have follow problem.

My servlet is calling one stateless session bean and catch some exceptions:

// register user
try {
RegisterFacadeBeanLocalHome registerFacadeHome = (RegisterFacadeBeanLocalHome) serviceLocator.getLocalHome(JNDINamesRegister.REGISTER_FACADE_SSLSB);
registerFacadeHome.create().registerUser(inetAddress, groupId, userVO, user_dataVO, addressVO, AGB_VERSION, newsletter, newsletterType);


    // if all o.k. than create account
    showSubmitAgreePage(response);
}
catch (ServiceLocatorException sle) {
    logger.fatal("showFirstPage() failed", sle);
    showErrorPage(response);
}
catch (CreateException ce) {
    logger.fatal("showFirstPage() failed", ce);
    showErrorPage(response);
}
catch (OMAException omae) {
    logger.fatal("showFirstPage() failed", omae);
    showErrorPage(response);
}
catch (ParameterException pe) {
    logger.fatal("showFirstPage() failed", pe);
    showErrorPage(response);
}

In RegisterFacadeBean wthe will be called some other session beans in the same transaction. For example there will be called addUser2Group in access session bean.

In my session bean I have this method:

public void addUser2Group(Long user_id, Integer group_id)
throws CreateException, OMAException {
if (logger.isDebugEnabled()) {
logger.debug("addUser2Group(" + user_id + "," + group_id + ") entered");
}


// check for the user
try {
userEntityHome.findByPrimaryKey(user_id);
}
catch (FinderException fe) {
logger.fatal("addUser2Group() failed, because user " + user_id + " not found", fe);
throw new OMAException("AccessBean::addUser2Group() failed, because user " + user_id + " not found", ErrorIDs.USER_NOT_FOUND_ERROR);
}


// check for the group
try {
systemGroupHome.findByPrimaryKey(group_id);
}
catch (FinderException fe) {
logger.error("addUser2Group() failed, because group " + group_id + " not found");
throw new OMAException("AccessBean::addUser2Group() failed, because group " + group_id + " not found", ErrorIDs.GROUP_NOT_FOUND_ERROR);
}


// add user to the group with valid from now
try {
User_2_System_GroupBeanLocalHome user_2_systemGroupHome = (User_2_System_GroupBeanLocalHome) serviceLocator.getLocalHome(JNDINamesUser.USER_2_SYSTEM_GROUP_EJB);
user_2_systemGroupHome.create(user_id, group_id, SQLUtils.getInstance().getCurrentTimestamp(), null);
}
catch (ServiceLocatorException sle) {
logger.fatal("ejbCreate() failed with ServiceLocatorException", sle);
throw new OMAException("Access::addUser2Group() service locator failed");
}
}


But if userEntityHome.findByPrimaryKey(user_id) or systemGroupHome.findByPrimaryKey(group_id) I didn't get in my Servlet OMAException (this is checked exception).

Than I get:

HTTP ERROR: 500 null; CausedByException is: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=prog-01//85, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Store failed; CausedByException is: General error, message from server: "Cannot add or update a child row: a foreign key constraint fails"); - nested throwable: (org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl [FormatId=257, GlobalId=prog-01//85, BranchQual=] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.ejb.EJBException: Store failed; CausedByException is: General error, message from server: "Cannot add or update a child row: a foreign key constraint fails"))

Where is the problem?


Regards, Rafal



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to