Hi there,

I have a really simple bean and test for that bean. I'm building the test gradually. 
I've included what I have so far. The problem is that although the bean is created, 
findByPrimaryKey() never finds any beans and findAll() always returns 0. If I try to 
create the bean again though, the bean is already there and a ServerException is 
thrown. (BTW, why a ServerException? Should it not be a CreateException?).

The error from the line:

Message beanByPK = _home.findByPrimaryKey(new Integer(1));

is:

     [java] javax.ejb.ObjectNotFoundException: No such entity!
     [java]     at 
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:245)
     [java]     at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
     [java]     at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
     [java]     at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown 
Source)
     [java]     at 
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:128)
     [java]     at 
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:108)
     [java] .F
     [java]     at 
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:73)
     [java]     at 
org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:76)
     [java]     at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:185)
     [java]     at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:96)
     [java]     at $Proxy0.findByPrimaryKey(Unknown Source)

The error from the line:

Message beanByPK = _home.findByPrimaryKey(new Integer(1));

is:

1) 
testCreateMessageBean(client.uk.org.objectwiz.model.forum.ejb.TestClient)junit.framework.AssertionFailedError:
 [TestClient.removeAllBeans()] number of beans: 0

But if I try to insert the bean again, the error is:

     [java] java.rmi.ServerException: RemoteException occurred in server thread; 
nested exception is:
     [java]     javax.transaction.TransactionRolledbackException: INSERTING AN ALREADY 
EXISTING BEAN, ID = 1; nested exception is:
     [java]     java.lang.IllegalStateException: INSERTING AN ALREADY EXISTING BEAN, 
ID = 1
     [java] javax.transaction.TransactionRolledbackException: INSERTING AN ALREADY 
EXISTING BEAN, ID = 1; nested exception is:
     [java]     java.lang.IllegalStateException: INSERTING AN ALREADY EXISTING BEAN, 
ID = 1
     [java] java.lang.IllegalStateException: INSERTING AN ALREADY EXISTING BEAN, ID = 1
     [java] .F
     [java]     at 
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:245)
     [java]     at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
     [java]     at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
     [java]     at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown 
Source)
     [java]     at 
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:128)

Can anyone shed any light on this?

Peter.

- 8< - INCLUDED CODE - 8< -

public class TestClient extends TestCase
{
  private MessageHome _home;

  public static void main(String[] args)
  {
    junit.textui.TestRunner.run(TestClient.class);
  }

  public TestClient(String name)
  {
    super(name);
  }

  public void testCreateMessageBean()
  {
    try
      {
        Integer beanKey = new Integer(1);
        _home.create(beanKey, "Test", "This is a test");

        Message beanByPK = _home.findByPrimaryKey(new Integer(1));
        assertNotNull("[TestClient.testCreateMessageBean()] findByPrimaryKey(1) 
returned null", beanByPK);
      }
    catch(Exception e)
      {
        e.printStackTrace();
        fail();
      }
  }

  protected void setUp() throws Exception
  {
    // Get a naming context
    InitialContext jndiContext = new InitialContext();

    // Get a reference to the message bean
    Object ref = jndiContext.lookup("ejb/forum/Message");

    // Get a reference from this to the bean's Home interface
     _home = (MessageHome) PortableRemoteObject.narrow(ref, MessageHome.class);
  }

  protected void tearDown() throws Exception
  {
    try
      {
        removeAllBeans();
      }
    catch(Exception e)
      {
        e.printStackTrace();
      }
  }

  /**
   * Remove all beans
   */
  private void removeAllBeans() throws Exception
  {
    Collection allBeans = _home.findAll();

    assertTrue("[TestClient.removeAllBeans()] number of beans: " + allBeans.size(), 
allBeans.size() > 0);

    Iterator allBeansIterator = allBeans.iterator();

    while(allBeansIterator.hasNext())
      {
        Message bean = (Message)allBeansIterator.next();
        _home.remove(bean.getHandle());
      }
  }
}

- >8 - INCLUDED CODE - >8 -

________________________________________________________________________

E-mail is an informal method of communication and may be subject to data corruption, 
interception and unauthorised amendment for which Digital Bridges Ltd will accept no 
liability. Therefore, it will normally be inappropriate to rely on information 
contained on e-mail without obtaining written confirmation.

This e-mail may contain confidential and/or privileged information. If you are not the 
intended recipient (or have received this e-mail in error) please notify the sender 
immediately and destroy this e-mail. Any unauthorized copying, disclosure or 
distribution of the material in this e-mail is strictly forbidden.

________________________________________________________________________


_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to