HI,
I am 2 week old to
EJB.
I am using
jboss 3.0 as container.
I am using xdoclet for auto generation of code.
I have written an EntityBean "AccountBean.java" which reads as -
package helloworld;
import java.util.Collection;
import javax.ejb.SessionBean;
import javax.ejb.EntityContext;
/**
* @ejb.bean type="CMP"
* jndi-name="helloworld/Account"
* view-type="both"
* @ejb.finder signature="Collection findAllAccounts()"
* @ejb.pk
* @jboss:table-name "user_profile"
* @ejb:transaction type="Required"
*
*/
public abstract class AccountBean implements javax.ejb.EntityBean {
/**
* Create Account.
*
* @ejb.create-method
*/
public Object ejbCreate() throws javax.ejb.CreateException {
System.out.println("In ejbCreate()");
return new AccountPK();
//return null;
}
/**
* Create Account with parameters.
*
* @ejb.create-method
*/
public Object ejbCreate(
String vUserIdentity,
String vFirstName,
double vPinCode
) throws javax.ejb.CreateException {
System.out.println("In ejbCreate() parametrised");
setUserIdentity(vUserIdentity);
setFirstName(vFirstName);
setPinCode(vPinCode);
System.out.println("returning AccountPK with acount NO " + vUserIdentity);
return new AccountPK(vUserIdentity);
//return null;
}
public void ejbPostCreate(String vUserIdentity,
String vFirstName,
double vPinCode
) throws javax.ejb.CreateException {
System.out.println("In ejbPostCreate() parametrised");
}
public void ejbPostCreate() throws javax.ejb.CreateException {
System.out.println("In ejbPostCreate()");
}
/**
* @ejb.pk-field
* @ejb.persistent-field
* @ejb.interface-method
* @jboss:column-name user_identity
*/
public abstract String getUserIdentity();
public abstract void setUserIdentity(String vUserIdentity);
/**
* @ejb.persistent-field
* @ejb.interface-method
* @jboss:column-name pin_code
*/
public abstract double getPinCode();
public abstract void setPinCode(double vPinCode);
/**
* @ejb.persistent-field
* @ejb.interface-method
* @jboss:column-name first_name
*/
public abstract String getFirstName();
public abstract void setFirstName(String vFirstName);
/**
* @ejb.interface-method
*/
public String accountInfo() {
return "Your account(change to pincode) has Rs. " + getPinCode() + " as balance";
}
}
Now to
test this Entitybean, i wrote a class named "AccountClient.java" which reads as -
package helloworld;
import javax.ejb.*;
import javax.naming.*;
import java.rmi.*;
import java.util.Properties;
import java.util.Vector;
class AccountClient
{
public static void main(String[] args)
{
System.out.println("\nBegin AccountClient ..\n");
try
{
// Create an Authentication object, in the server
Context ctx = new InitialContext();
System.out.println("context = " + ctx);
System.out.println("received context - now looking up \n");
Object obj = ctx.lookup("helloworld/Account");
AccountHome mAccountHome = (AccountHome) javax.rmi.PortableRemoteObject.narrow(obj, AccountHome.class) ;
System.out.println("before creating Account\n");
mAccountHome.create("user_001", "janarthan", 10500);
//mAccountHome.create("janarthan", 10500);
//mAccountHome.create();
System.out.println("after creating Account\n");
// Here is the call that executes the method on home objects find method
Vector mResult = (Vector)mAccountHome.findAllAccounts();
System.out.println("The result is " + mResult);
}
catch (Exception e)
{
System.out.println(":::::::::::::: Error :::::::::::::::::");
e.printStackTrace();
}
System.out.println("\nEnd Account...\n");
}
}
I compile and deploy the appln.Everthings OK.
I now run the AccountClient.java.
I get an exception as -
[
java]
[java] Begin AccountClient ..
[java]
[java] context = javax.naming.InitialContext@888759
[java] received context - now looking up
[java]
[java] before creating Account
[java]
[java] :::::::::::::: Error :::::::::::::::::
[java] javax.ejb.CreateException: Error checking if entity exists:java.sql.SQLEx
ception: Column not found: USER_IDENTITY in statement [SELECT COUNT(*) FROM USER_P
ROFILE WHERE user_identity='user_001']
[java] at org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.entityEx
ists(JDBCCreateEntityCommand.java:166)
[java] at org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.execute(
JDBCCreateEntityCommand.java:127)
[java] at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.createEntity(JD
BCStoreManager.java:450)
[java] at org.jboss.ejb.plugins.CMPPersistenceManager.createEntity(CMPPer
sistenceManager.java:253)
[java] at org.jboss.resource.connectionmanager.CachedConnectionIntercepto
r.createEntity(CachedConnectionInterceptor.java:270)
[java] at org.jboss.ejb.EntityContainer.createHome(EntityContainer.java:7
28)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccesso
rImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho
dAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:324)
[java] at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(E
ntityContainer.java:1116)
[java] at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractIn
terceptor.java:73)
[java] at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHo
me(EntitySynchronizationInterceptor.java:257)
[java] at org.jboss.resource.connectionmanager.CachedConnectionIntercepto
r.invokeHome(CachedConnectionInterceptor.java:215)
[java] at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(Enti
tyInstanceInterceptor.java:134)
[java] at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLo
ckInterceptor.java:79)
[java] at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(Enti
tyCreationInterceptor.java:44)
[java] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstract
TxInterceptor.java:98)
[java] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIn
terceptorCMT.java:167)
[java] at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptor
CMT.java:52)
[java] at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityIn
terceptor.java:104)
[java] at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.
java:109)
[java] at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:4
87)
[java] at org.jboss.ejb.Container.invoke(Container.java:726)
[java] at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1055)
[java] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java
:491)
[java] at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker
.java:362)
[java] at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho
dAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:324)
[java] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:
261)
[java] at sun.rmi.transport.Transport$1.run(Transport.java:148)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
[java] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.
java:460)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTra
nsport.java:701)
[java] at java.lang.Thread.run(Thread.java:536)
[java] at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(
StreamRemoteCall.java:247)
[java] at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall
.java:223)
[java] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
[java] at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknow
n Source)
[java] at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JR
MPInvokerProxy.java:128)
[java] at org.jboss.invocation.InvokerInterceptor.invoke(InvokerIntercept
or.java:108)
[java] at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterc
eptor.java:73)
[java] at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.
java:76)
[java]
[java] at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeIntercep
tor.java:185)
[java] End Account...
[java] at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
[java] at $Proxy0.create(Unknown Source)
[java]
[java] at helloworld.AccountClient.main(Unknown Source)
Please help me get out of this. I have not figured why this exception comes. The table that i am referring does contain 'USER_IDENTITY' as its field.
I have fought this for 2 days
. Please help me !!!