Hello,

Here's my problem : I've an entity bean called WeblogSitem and another 
entity bean called WeblogStory.
They belong to the same application unit.
The entity bean WeblogStory needs to use the entity bean WeblogSitem but 
when it tries to get the Home of the WelogStory, it fails.
I've the following exception on the application server :

[WeblogStory] TRANSACTION ROLLBACK EXCEPTION:null; nested exception is:
    javax.ejb.EJBException
[WeblogStory] java.lang.ClassCastException: java.lang.NoClassDefFoundError
[WeblogStory]     at 
org.jboss.ejb.plugins.BMPPersistenceManager.createEntity(BMPPersistenceManager.java:151)
[WeblogStory]     at 
org.jboss.ejb.EntityContainer.createHome(EntityContainer.java:441)
[WeblogStory]     at java.lang.reflect.Method.invoke(Native Method)
[WeblogStory]     at 
org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:639)
[WeblogStory]     at 
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:160)
[WeblogStory]     at 
org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:87)
[WeblogStory]     at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:135)
[WeblogStory]     at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
[WeblogStory]     at 
org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
[WeblogStory]     at 
org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:164)
[WeblogStory]     at 
org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
[WeblogStory]     at 
org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:316)
[WeblogStory]     at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:369)
[WeblogStory]     at java.lang.reflect.Method.invoke(Native Method)
[WeblogStory]     at 
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:237)
[WeblogStory]     at 
sun.rmi.server.UnicastServerRef2.dispatch(UnicastServerRef2.java:89)
[WeblogStory]     at sun.rmi.transport.Transport$1.run(Transport.java:140)
[WeblogStory]     at java.security.AccessController.doPrivileged(Native 
Method)
[WeblogStory]     at 
sun.rmi.transport.Transport.serviceCall(Transport.java:137)
[WeblogStory]     at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:422)
[WeblogStory]     at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:634)
[WeblogStory]     at java.lang.Thread.run(Thread.java:479)

<?xml version="1.0" encoding="UTF-8"?>

Here's the deployment descriptor :

<ejb-jar>
  <enterprise-beans>
      <entity>
      <ejb-name>WeblogSitem</ejb-name>
      <home>com.icogs.sitems.weblog.ejbs.WeblogHome</home>
      <remote>com.icogs.sitems.weblog.ejbs.Weblog</remote>
      <ejb-class>com.icogs.sitems.weblog.ejbs.WeblogImpl</ejb-class>
      <persistence-type>Bean</persistence-type>
      <prim-key-class>com.icogs.sitems.weblog.ejbs.WeblogPK</prim-key-class>
      <reentrant>True</reentrant>
    </entity>
    <entity>   
      <ejb-name>WeblogStory</ejb-name>
      <home>com.icogs.sitems.weblog.ejbs.StoryHome</home>
      <remote>com.icogs.sitems.weblog.ejbs.Story</remote>
      <ejb-class>com.icogs.sitems.weblog.ejbs.StoryImpl</ejb-class>
      <persistence-type>Bean</persistence-type>
      <prim-key-class>com.icogs.sitems.weblog.ejbs.StoryPK</prim-key-class>
      <reentrant>True</reentrant>
      <ejb-ref>
    <ejb-ref-name>ejb/Weblog</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.icogs.sitems.weblog.ejbs.WeblogHome</home>
    <remote>com.icogs.sitems.weblog.ejbs.Weblog</remote>
    <ejb-link>WeblogSitem</ejb-link>
      </ejb-ref>
    </entity>
  </enterprise-beans>
</ejb-jar>

Here's the piece of code which is involved in the action :

    InitialContext ictx = new InitialContext();       
    WeblogHome home = (WeblogHome) 
javax.rmi.PortableRemoteObject.narrow(ictx.lookup("java:comp/env/ejb/Weblog"), 
WeblogHome.class);
               
    WeblogHome home = (WeblogHome) 
GenericJNDILookup.lookupInternalHomeRef("java:comp/env/ejb/Weblog", 
WeblogHome.class);
    Weblog weblog = home.findByPrimaryKey(new WeblogPK(parentSitemId));


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

Reply via email to