[jboss-user] [EJB/JBoss] - Problem by accessing Entity Bean

thomas2008ch do-not-reply at jboss.com
Mon May 26 12:49:21 EDT 2008


I created a table as follow:


  | create table Book(
  |       ID                 VARCHAR2(10 BYTE)         NOT NULL,
  |       Name         VARCHAR2(40 BYTE),
  |       Author          VARCHAR2(10 BYTE),
  |       Public_Date         DATE,
  |       Description        VARCHAR2(15 BYTE),
  |       primary key (id)
  |    )
  | 
  | insert into book values('01', 'My Book', 'Wei Chen', to_date('19960725','YYYYMMDD'), 'No Comment');
  | 

Then I created an Entity Bean "BookBean" with XDoclet based on this table. The XDoclet generated several java files such as BookBean.java, BookCMP.java etc.

I deployed the EAR to the JBoss 4.2.2. GA.

Then I try to access the Entity Bean from a Standalone Client. The code looks as follow:


  | ...
  | 		Book book = null;
  | 		try {
  | 			BookHome bookHome = BookUtil.getHome();
  | 			book = bookHome.create();
  | 
  | 		} catch (Exception exception) {
  | 			exception.printStackTrace();
  | 		}
  | ...
  | 

But I get Exception as follow:

  | 
  | javax.ejb.CreateException: Error checking if entity exists:java.sql.SQLException: invalid schema name: TEST in statement [SELECT COUNT(*) FROM TEST.BOOK WHERE ID=?]
  | 	at org.jboss.ejb.plugins.cmp.jdbc.JDBCInsertPKCreateCommand.beforeInsert(JDBCInsertPKCreateCommand.java:105)
  | 	at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractCreateCommand.execute(JDBCAbstractCreateCommand.java:150)
  | 	at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.createEntity(JDBCStoreManager.java:587)
  | 	at org.jboss.ejb.plugins.CMPPersistenceManager.createEntity(CMPPersistenceManager.java:237)
  | 	at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.createEntity(CachedConnectionInterceptor.java:225)
  | 	at org.jboss.ejb.EntityContainer.createHome(EntityContainer.java:779)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
  | 	at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1126)
  | 	at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
  | 	at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:203)
  | 	at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:189)
  | 	at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
  | 	at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:136)
  | 	at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:76)
  | 	at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:45)
  | 	at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
  | 	at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
  | 	at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
  | 	at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
  | 	at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
  | 	at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
  | 	at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
  | 	at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:521)
  | 	at org.jboss.ejb.Container.invoke(Container.java:981)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  | 	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  | 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  | 	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  | 	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  | 	at org.jboss.invocation.unified.server.UnifiedInvoker.invoke(UnifiedInvoker.java:231)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  | 	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  | 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  | 	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  | 	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  | 	at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:201)
  | 	at $Proxy16.invoke(Unknown Source)
  | 	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:769)
  | 	at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
  | 	at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:387)
  | 	at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
  | 	at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:163)
  | 	at org.jboss.remoting.Client.invoke(Client.java:1634)
  | 	at org.jboss.remoting.Client.invoke(Client.java:548)
  | 	at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:183)
  | 	at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
  | 	at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)
  | 	at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
  | 	at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
  | 	at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
  | 	at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
  | 	at $Proxy2.create(Unknown Source)
  | 	at com.wei.chen.test.TestClient.main(TestClient.java:22)
  | 

In the class "BookBean.java" there is a function as follow which is automatically created by XDoclet:


  | 	public java.lang.String ejbCreate() throws javax.ejb.CreateException {
  | 		// EJB 2.0 spec says return null for CMP ejbCreate methods.
  | 		// TODO: YOU MUST INITIALIZE THE FIELDS FOR THE BEAN HERE. 
  | 		// setMyField("Something"); 
  | 		// begin-user-code
  | 		this.setId("01");
  | 		return null;
  | 		// end-user-code
  | 	}
  | ...
  | 

The code "this.setId("01");" was added by me.

Any tips?


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4153412#4153412

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4153412



More information about the jboss-user mailing list