Hi Scott!!!

Looking at your code, I wonder why you do not cast the looked-up object
directly to your own home interface, i.e 

EJB_DSHome ejbHome = (EJB_DSHome)intitalContext.lookup(jndiName);

As far as I can see, you cast an EJBHome to your class that extends
EJBHome. You cannot however cast downwards in an object hierarchy (you can
cast from EJB_DSHome to EJBHome, but not the otherway around).

I hope this helps you!!

Regards,
Fredrik...


On Wed, 17 May 2000, Scott Bader wrote:

> I'm trying to create a bean, but I'm getting a
> java.lang.IncompatibleClassChangeError,
> when I call create() on the home interface. 
> 
> Has anyone seen this before, or can suggest how to troubleshoot?
> 
> I'm running jboss 1.0 (from binary dated 5-11-2000).
> 
> Thanks,
> Scott
> 
> Here's a snippet of my source code:
> 
>       initialContext = getInitialContext(vendor);
>       log("Got initial context");
> 
>       /** Call JNDI to look up the home interface **/
>       EJBHome ejbHome = (javax.ejb.EJBHome) initialContext.lookup(jndiName);
>       log("Got ejbhome interface");
> 
>       // Cast to the bean's Home interface
>       home = (EJB_DSHome) ejbHome;
>       log("Got bean home interface");
>       EJBTestClient client = null;
> 
>       /**
>           * Ask factory for a new instance of the bean.
>        */
>       remote = home.create();
> 
> 
> Here's the output I'm getting:
> 
> Got initial context
> Got ejbhome interface
> Got bean home interface
> Exception in thread "main" java.lang.IncompatibleClassChangeError:
> Implementing class
>         at java.lang.ClassLoader.defineClass0(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
>         at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
>         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
>         at java.lang.Class.getFields0(Native Method)
>         at java.lang.Class.getDeclaredFields(Class.java:998)
>         at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:340)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.io.ObjectStreamClass.init(ObjectStreamClass.java:293)
>         at
> java.io.ObjectStreamClass.lookupInternal(ObjectStreamClass.java:112)
>         at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
>         at
> org.ejboss.container.ProxyContainer.invoke(ProxyContainer.java:182)
>         at
> org.ejboss.container.ProxyContainerForHome.invoke(ProxyContainerForHome.java:109)
>         at $Proxy0.create(Unknown Source)
>         at ejbtests.TestEJB_DS.<init>(TestEJB_DS.java:58)
>         at ejbtests.EJBTestClient.main(EJBTestClient.java:51)
> 
> 
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> Problems?:           [EMAIL PROTECTED]
> 
> 



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Problems?:           [EMAIL PROTECTED]

Reply via email to