Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cannot narrow remote object

53 views
Skip to first unread message

Tim Bounds

unread,
Mar 8, 2004, 4:02:59 PM3/8/04
to

Weblogic Server 8.1 SP2

I have a ear with ejb's in an ejb jar file.
I also have an ejb jar file deployed seperate but on the same box as the ear.
When I try to call an ejb on the seperate ejb jar file from the
ejb in the ear file I get the Cannot narrow remote object class cast exception.

If I put the seperate ejb jar file on a seperate server it works great.

If I print out class loader info I get for he seperat ejb jar file.

JNDI returned com.blah.blah.blahHomeImpl_812_WLStub
From loader weblogic.utils.classloaders.GenericClassLoader@1669521 finder:
annotation: UtilityEJB@

The class loader for the ear file says.
** Trying to cast into loader weblogic.utils.classloaders.GenericClassLoader@56acfa
finder
annotation: APP@

It seems to me it want to cast from UtilityEJB@class to APP@class how do I fix
it or get it
working.

I have already read a bunch of post's and info but still I cannot fine a solution.


Rob Woollen

unread,
Mar 10, 2004, 2:24:42 PM3/10/04
to
Tim Bounds wrote:
> Weblogic Server 8.1 SP2
>
> I have a ear with ejb's in an ejb jar file.
> I also have an ejb jar file deployed seperate but on the same box as the ear.

You mean same box and same server instance here, right?

> When I try to call an ejb on the seperate ejb jar file from the
> ejb in the ear file I get the Cannot narrow remote object class cast exception.
>

Interesting (and thanks for searching and printing out the debug info.
Very helpful.)

Can you add this code in right before you lookup the EJB home and show
me the output:

System.out.println("Before JNDI lookup, we believe current application
name is "+
weblogic.j2ee.J2EEApplicationService.getCurrentApplicationName());

-- Rob

Tim Bounds

unread,
Mar 11, 2004, 3:04:19 PM3/11/04
to

Here is the output.

Before JNDI lookup, we believe current application name is null.
This was place just before Object object = context.lookup(ejbName);

And yes same box and same server instance. if I put that
ejb jar in the ear and deploy it with that appication it works fine so
I can get it to run on the same box. I just did not want to deploy
that set of ejbs with every application that was going to be using them.

Rob Woollen

unread,
Mar 11, 2004, 7:26:23 PM3/11/04
to
Ok, one more question. Where are you calling lookup from?

-- Rob

Tim Bounds

unread,
Mar 15, 2004, 8:22:00 PM3/15/04
to

Calling lookup from another EJB jar file on the same server instance if thats what
you mean.
from inside a Session Bean.

Rob Woollen

unread,
Mar 16, 2004, 1:41:50 PM3/16/04
to
Ok, where exactly are you doing the lookup? ie is another EJB's code
actually doing the lookup? If so, are you in a business method or one
of the ejbXXX callbacks?

If it's not an EJB, can you show me the call stack that got you there?

Actually, it would be very helpful, if you could call Thread.dumpStack
right before you do the lookup and show me that output.

Tim Bounds

unread,
Mar 17, 2004, 2:36:32 PM3/17/04
to

A message bean creates a business delegate and that delegate does a lookup on the

EJB that I cannot narrow. I'll post stack as soon as I can configure the server
and
set up the project again.

Tim Bounds

unread,
Mar 24, 2004, 5:35:43 PM3/24/04
to


Here is the stack trace.

Dumping Stack
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1071)
at com.ngit.ciras.care.services.RemoteServiceLocator.getEjbHome(RemoteSe
rviceLocator.java:44)
at com.ngit.ciras.care.lotusnotes.delegate.DocumentTransferDelegate.init
(DocumentTransferDelegate.java:71)
at com.ngit.ciras.care.lotusnotes.NotesMessageBean.init(NotesMessageBean
.java:55)
at com.ngit.ciras.care.lotusnotes.NotesMessageBean.setMessageDrivenConte
xt(NotesMessageBean.java:100)
at weblogic.ejb20.internal.MessageDrivenEJBHome.createBean(MessageDriven
EJBHome.java:225)
at weblogic.ejb20.pool.MessageDrivenPool.createBean(MessageDrivenPool.ja
va:116)
at weblogic.ejb20.pool.Pool.createInitialBeans(Pool.java:254)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.start(MessageDr
ivenBeanPoolInfoImpl.java:239)
at weblogic.ejb20.deployer.EJBDeployer.deployMessageDrivenBeans(EJBDeplo
yer.java:1583)
at weblogic.ejb20.deployer.EJBDeployer.start(EJBDeployer.java:1411)
at weblogic.ejb20.deployer.EJBModule.start(EJBModule.java:668)
at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer
.java:2022)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContai
ner.java:2063)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.
activateContainer(SlaveDeployer.java:2592)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(
SlaveDeployer.java:2515)
at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeplo
yer.java:2317)
at weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(S
laveDeployer.java:2399)
at weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDepl
oyer.java:2311)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(S
laveDeployer.java:2479)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(Sla
veDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDepl
oyer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDep
loyer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHan
dler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)


Before JNDI lookup, we believe current application name is null

JNDI returned com.ngc.it.ciras.ejb.crypto.RWareCryptoEJB_nnbc6i_HomeImpl_812_WLS
tub
From loader weblogic.utils.classloaders.GenericClassLoader@3ca56f finder: weblog
ic.utils.classloaders.MultiClassFinder@e69696 annotation: Ciras_UtilityEJB@
** Trying to cast into loader weblogic.utils.classloaders.GenericClassLoader@72b
784 finder: weblogic.utils.classloaders.MultiClassFinder@aaa1c3 annotation: Feed
BackQuestions@

Rob Woollen

unread,
Mar 24, 2004, 5:43:40 PM3/24/04
to
Ah, I think I see the bug.

Check your weblogic-ejb-jar.xml. Do you set initial-beans-in-free-pool?
If so, can you try setting it to 0 and letting me know if this fixes
your issue?

Tim Bounds

unread,
Mar 31, 2004, 11:35:37 AM3/31/04
to

Still does not work with that change.


Dumping Stack
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1071)
at com.ngit.ciras.care.services.RemoteServiceLocator.getEjbHome(RemoteSe
rviceLocator.java:44)
at com.ngit.ciras.care.lotusnotes.delegate.DocumentTransferDelegate.init

(DocumentTransferDelegate.java:72)


at com.ngit.ciras.care.lotusnotes.NotesMessageBean.init(NotesMessageBean
.java:55)
at com.ngit.ciras.care.lotusnotes.NotesMessageBean.setMessageDrivenConte
xt(NotesMessageBean.java:100)
at weblogic.ejb20.internal.MessageDrivenEJBHome.createBean(MessageDriven
EJBHome.java:225)
at weblogic.ejb20.pool.MessageDrivenPool.createBean(MessageDrivenPool.ja
va:116)

at weblogic.ejb20.pool.MessageDrivenPool.getBean(MessageDrivenPool.java:
67)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:362)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.
java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)


at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Before JNDI lookup, we believe current application name is null
JNDI returned com.ngc.it.ciras.ejb.crypto.RWareCryptoEJB_nnbc6i_HomeImpl_812_WLS
tub

From loader weblogic.utils.classloaders.GenericClassLoader@6bbb36 finder: weblog
ic.utils.classloaders.MultiClassFinder@17d26fc annotation: Ciras_UtilityEJB@
** Trying to cast into loader weblogic.utils.classloaders.GenericClassLoader@137
008a finder: weblogic.utils.classloaders.MultiClassFinder@1e335d7 annotation:
Fe
edBackQuestions@


java.lang.ClassCastException: Cannot narrow remote object to com.ngc.it.ciras.ejb.crypto.RWareCryptoEJBHome
at weblogic.iiop.PortableRemoteObjectDelegateImpl.narrow(PortableRemoteObjectDelegateImpl.java:242)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
at com.ngit.ciras.care.services.RemoteServiceLocator.getEjbHome(RemoteServiceLocator.java:57)
at com.ngit.ciras.care.lotusnotes.delegate.DocumentTransferDelegate.init(DocumentTransferDelegate.java:72)
at com.ngit.ciras.care.lotusnotes.NotesMessageBean.init(NotesMessageBean.java:55)
at com.ngit.ciras.care.lotusnotes.NotesMessageBean.setMessageDrivenContext(NotesMessageBean.java:100)
at weblogic.ejb20.internal.MessageDrivenEJBHome.createBean(MessageDrivenEJBHome.java:225)
at weblogic.ejb20.pool.MessageDrivenPool.createBean(MessageDrivenPool.java:116)
at weblogic.ejb20.pool.MessageDrivenPool.getBean(MessageDrivenPool.java:67)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:362)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)


at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

0 new messages