Hi all,

I'm using Jboss 3.0.4 w/ Tomcat 4.1.12, running Sun's JDK (build
1.4.0_01-b03), on Solaris 7.  I have one ear file which contains a bunch
of local entity CMP 2.0 beans that access my database.  I have a
separate ear file containing a session bean that looks the Entity beans
up via the global JNDI, and trys to use the local interface to do its
work.

The problem I'm encountering, is that if I redeploy the ear file
containing the entity beans without redeploying the ear containing the
session bean, when I go to retrieve my local interface via the following
code I get a ClassCastException:

private UserLocalHome getUserLocalHome()
throws NamingException
{
    UserLocalHome home = null;
    InitialContext ctx = new InitialContext();

    try 
    {   
        home = (UserLocalHome) 
                PortableRemoteObject.narrow(
                     ctx.lookup("ejb/iaf/User"), UserLocalHome.class);

    }
    finally
    {
       ctx.close();
    }
}

If I simply go and redeploy the ear containing the session bean after
that, everything works again.  Is this supposed to happen and if so, can
somebody explain it.  I know that class files have the notion of a
version, but the interface is really not changing at all between
redeployments, etc.

Also, I read on some jboss-user list archive of people experiencing
similar problems if the ear files contained jndi.properties files.  I
have double-checked this and can assure you that neither of my .ear
files have this.

Thanks in advance for any help,

-Eric

Snippet from server.log w/ exception is attached

2003-01-29 13:56:07,328 ERROR [org.jboss.ejb.plugins.LogInterceptor] EJBException, 
causedBy:
java.lang.ClassCastException
        at 
com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:293)
        at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
        at net.snet.ejb.ait.YahooMigrationManagerEJB.getUserLocalHome(Unknown Source)  
 
        at net.snet.ejb.ait.YahooMigrationManagerEJB.migrate(Unknown Source)
        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:324)
        at 
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:660)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
        at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:77)
        at 
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
        at 
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
        at 
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
        at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
        at 
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)
        at org.jboss.ejb.Container.invoke(Container.java:712)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
        at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:382)
        at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
        at sun.rmi.transport.Transport$1.run(Transport.java:148)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
        at java.lang.Thread.run(Thread.java:536)

Reply via email to