ProgramWindowJava

CMP and database connection problem

CMP - failed to retrieve data from database - but NO exception..

Hi, I've developed this simple CMP to retrieve user Group information from database. It failed to retrieve data from database but no exception is thrown (Yes, I stepped through the code, nothing happenned). And now I'm kind of stuck without any error message to start debuggin with. So, I'm just asking for general advice/direction...

1. CLIENT side
Here's the Strut's action class ** ie. the CLIENT ** (yes, that's where they retrieve local proxy to CMP directly, as opposed to doing it thru a session bean):

Code:
try { ... ... BasicConfigurator.configure(); logger.debug("PrepareLoginAction invoked"); context = new InitialContext(); Object ref = context.lookup(groupJNDI); home = (GroupLocalHome)PortableRemoteObject.narrow(ref, GroupLocalHome.class); ******** THAT's MY CMP local proxy: GroupLocal, Nothing is retrieved here but NO EXCEPTION ******** groups=home.findAllGroups(); ... return mapping.findForward("success"); ... } catch(Exception e) { ***** NO EXCEPTION CAUGHT ***** }

2. The CMP GroupBean:
Code:
/** * @author norman_lm_fung@hotmail.com * * @ejb.bean * name="GroupEJB" * local-jndi-name="ejb/UserGroup" * display-name="User Group EJB" * description="User Group EJB" * cmp-version="2.x" * type="CMP" * view-type="local" * schema="Group" * reentrant="false" * primkey-field="UIN" * * @ejb.persistence * table-name="GROUPS" * * @ejb.finder * query="SELECT OBJECT(g) FROM Group AS g" * signature="java.util.Collection findAllGroups()" NOTE: THIS FINDER IS NOT SENDING ANYTHING TO DATABASE. * * @ejb.interface * local-class="com.aa.samples.interfaces.GroupLocal" * * @ejb.home * local-class="com.aa.samples.interfaces.GroupLocalHome" * * @jboss.persistence * datasource="java:/jdbc/dev01" NOTE: JNDI name of the connection is "jdbc/dev01", as specified in "mysql-ds.xml" in JBoss deploy folder. I tried "java:jdbc/dev01" also - neither of the two works. * datasource-mapping="mySQL" * create-table="False" * remove-table="False" * table-name="GROUPS" * */ public abstract class GroupBean implements EntityBean { protected EntityContext etx; protected Logger logger =Logger.getLogger(GroupBean.class); /* * 1. Implementing Home interface */ /** * @param name * @ejb.create-method */ public Integer ejbCreate(String name, String description) throws CreateException { BasicConfigurator.configure(); logger.debug("GroupBean.ejbCreate invoked."); if(name==null) { throw new CreateException("name null"); } setName(name); setDescription(description); return null; } public void ejbPostCreate(String name, String description) throws CreateException { BasicConfigurator.configure(); logger.debug("GroupBean.ejbPostCreate invoked."); return; } /* * 2. Persistence methods: */ /** * @ejb.persistent-field * @ejb.persistence * column-name="UIN" * sql-type="INTEGER" * @ejb.pk-field * @ejb.interface-method */ public abstract Integer getUIN(); /** * @ejb.interface-method */ public abstract void setUIN(Integer UIN); /** * @ejb.persistent-field * @ejb.persistence * column-name="name" * sql-type="VARCHAR" * @ejb.interface-method */ public abstract String getName(); /** * @ejb.interface-method */ public abstract void setName(String name); /** * @ejb.persistent-field * @ejb.persistence * column-name="description" * sql-type="VARCHAR" * @ejb.interface-method */ public abstract String getDescription(); /** * @ejb.interface-method */ public abstract void setDescription(String description); /** * @ejb.persistent-field * @ejb.persistence * column-name="isSuspended" * sql-type="TINYINT" * @ejb.interface-method */ public abstract Boolean getIsSuspended(); /** * @ejb.interface-method */ public abstract void setIsSuspended(Boolean isSuspended); /* * 3. Implementing EntityBean interface: */ public void ejbRemove() throws RemoveException { BasicConfigurator.configure(); logger.debug("GroupBean.ejbRemove invoked."); return; } public void ejbLoad() { BasicConfigurator.configure(); logger.debug("GroupBean.ejbLoad invoked."); return; } public void ejbStore() { BasicConfigurator.configure(); logger.debug("GroupBean.ejbStore invoked."); return; } public void ejbActivate() { BasicConfigurator.configure(); logger.debug("GroupBean.ejbActivate invoked."); return; } public void ejbPassivate() { BasicConfigurator.configure(); logger.debug("GroupBean.ejbPassivate invoked."); return; } public void unsetEntityContext() { BasicConfigurator.configure(); logger.debug("GroupBean.unsetEntityContext invoked."); etx= null; return; } public void setEntityContext(EntityContext etx) { BasicConfigurator.configure(); logger.debug("GroupBean.setEntityContext invoked."); this.etx= etx; return; } }


3. SCREEN DUMP
Code:
... ... lots of stuff... 23:15:41,553 INFO [RequestProcessor] Processing a 'POST' for path '/prepareLoginAction' 23:15:48,368 INFO [STDOUT] 461330 [http-0.0.0.0-8080-Processor25] DEBUG com.aa.samples.actions.PrepareLoginAction - PrepareLoginAction invoked ERROR: invalid console appender config detected, console stream is looping23:15:53,559 INFO [STDOUT] 466521 [http-0.0.0.0-8080-Processor25] DEBUG com.aa.samples.beans.GroupBean - GroupBean.setEntityContext invoked. 23:15:53,561 INFO [STDOUT] 466521 [http-0.0.0.0-8080-Processor25] DEBUG com.aa.samples.beans.GroupBean - GroupBean.setEntityContext invoked. 23:15:53,566 INFO [STDOUT] 466528 [http-0.0.0.0-8080-Processor25] DEBUG org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.GroupEJB#findAllGroups - Executing SQL: SELECT t0_g.UIN FROM GROUPEJB t0_g 23:15:53,568 INFO [STDOUT] 466528 [http-0.0.0.0-8080-Processor25] DEBUG org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.GroupEJB#findAllGroups - Executing SQL: SELECT t0_g.UIN FROM GROUPEJB t0_g ... nothing related to JDBC/exceptions...

4. mysql-ds.xml

I still haven't been able to get to the bottom of it. The only thing I know is that for sure my CMP "GroupBean" is sending nothing to target database. I used p6spy and intercepted anything to/from database.

Code:
<datasources> <local-tx-datasource> <jndi-name>jdbc/dev01</jndi-name> <connection-url>jdbc:mysql://127.0.0.1:3306/dev01</connection-url> <driver-class>com.p6spy.engine.spy.P6SpyDriver</driver-class> <user-name>someuser</user-name> <password>somepasswd</password> </local-tx-datasource> </datasources>

5. XDoclet generated "jbosscmp--jdbc.xml" (NOTE: The datasource tag looks correct....)

Code:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd"> <jbosscmp-jdbc> <defaults> </defaults> <enterprise-beans> <entity> <ejb-name>GroupEJB</ejb-name> <datasource>java:/jdbc/dev01</datasource> <datasource-mapping>mySQL</datasource-mapping> <table-name>GROUPS</table-name> <cmp-field> <field-name>UIN</field-name> <column-name>UIN</column-name> </cmp-field> <cmp-field> <field-name>name</field-name> <column-name>name</column-name> </cmp-field> <cmp-field> <field-name>description</field-name> <column-name>description</column-name> </cmp-field> <cmp-field> <field-name>isSuspended</field-name> <column-name>isSuspended</column-name> </cmp-field> </entity> </enterprise-beans> </jbosscmp-jdbc>


Any idea? Thanks in advance!

Replay:CMP and database connection problem
First off, found a problem, rectified it, and BUT THE PROBLEM REMAINS:


Code:
... context = new InitialContext(); Object ref = context.lookup(groupJNDI); home = (GroupLocalHome)PortableRemoteObject.narrow(ref, groupLocalHome.class); //GroupLocalHome is a LOCAL interface! ... groups=home.findAllGroups(); ...

So this error was rectified (BUT STILL PROBLEM REMAINS - MY BEAN IS SENDING NOTHING TO DATABASE!)

[Previous] Declaring an array help
[Next] Need help with methods

Google


Java

Need help with methods
Need help with this Code, please.
Threads
My first program.
memory address?
executable java file
Bitwise comparison?
Can't figure out Static Error?
Help!! using recursion to search an array
Encrypt / Decrypt homework help
Menus
help!!!!!!!!!!!!!!!
How to access JSpinner's JTextField?
easy questions
recursion/iterator problem
repainting the whole frame??
Help Wih Chessboard Problem
Format US currency
Applet:How do I get a background image.
ArrayList printout?