All,
The problem is Sun's implementation of the
classloader's default constructor. It uses the system classloader instead
of the loader that loaded the class. To solve this problem you have to write
your own app classloaders to properly handle the parent classloader paradigm for
classloader. For a good explanation of the problem read chapter 2 pgs 41-49 in
Server-Based Java Programming by Ted Neward. Chapter 3 deals with custom
classloader approaches.
Remember that Java name spaces are defined by the package, class, and loader of the class. Different loader means different name space, which means a ClassNotFoundException.
Dave
-----Original Message-----
From: Robert Ren [mailto:[EMAIL PROTECTED]]
Sent:
Wednesday, July 11, 2001 12:25 PM
To: Orion-Interest
Subject: RE:
communication among ejbs in different applications
Hi, Juan:
So,
in your case, you have one ear file, which includes two ejb.jar files.
My
question is, can we have two ear files? Each application has one.
Have a
very nice day!
Rob
-----Original Message-----
From:
[EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On
Behalf Of Juan Lorandi
(Chile)
Sent: Tuesday, July 10, 2001 2:30 PM
To:
Orion-Interest
Subject: RE: communication among ejbs in different
applications
this is what I have in
mind
yourapp.ear
|
+--------yourejb1.jar
+--------yourejb2.jar
If
<ejb-link>'s are defined correctly, everything should work (works for
me)
> -----Original Message-----
> From: Robert Ren [mailto:[EMAIL PROTECTED]]
> Sent:
Martes, 10 de Julio de 2001 18:05
> To: Orion-Interest
> Subject:
RE: communication among ejbs in different applications
>
>
>
Hi, Juan:
> Thank for your help.
> In fact, recently, we tested
several combinations of App a and App b.
> ( Becasue the parent attribute
is only for Orion, we gave it
> up.) And, also
> we tested the
context solution by using JNDI.
> The results are :
> Senario
1:
> If we put the appA.jar in the classPath of appB, and put the
>
appB.jar in the
> classpath of appA, we can pass the compiling
sucessfully, but
> got Class not
> defined error when we tried to
initialize a context in one
> EJB in App A to
> look up the EJB in
App B;
> If we forced the App A to jar with App B, so the
appA-ejb.jar
> file contains
> both App A classes and App B classes.
In this way, we did see
> the all ejbs
> in App B via context, but
when we cast it, we got CastException error
> message.
> Still the
old question, can we make this kind call?
>
>
Thanks!
>
> Rob
>
>
> -----Original
Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On
Behalf Of Juan Lorandi
> (Chile)
> Sent: Monday, July 09, 2001 2:20
PM
> To: Orion-Interest
> Subject: RE: communication among ejbs in
different applications
>
>
> first, let's get one thing out of
the way:
>
> 'parent' attribute is a JNDI facility, no more, no
less.
>
> there still are separate "containers" for each app (this
may
> not be useful
> in all apps, specially since transactions may
not function as
> expected)
> it allows for JNDI properties to
propagate BOTH ways (they
> always propagate
> from father to son,
default father being the "default-app")
>
> Now, this is where I was
aiming to:
>
> have apps A, B deployed; do not use "parent"
attribute.
>
> connect A & B apps using JNDI parameterized
contexts (see
> connecting from
> applet, application in
www.orionsupport.com)
>
> Pray for correct transaction
enroling/2PC.
>
> Juan Pablo
>
> PS: Are you sure these
errors you get are provoked by each
> App correctly
> 'seeing' the
other?
> the dump looks like a bug in orion's JMS
implementation
>
> > -----Original Message-----
> >
From: Robert Ren [mailto:[EMAIL PROTECTED]]
> >
Sent: Lunes, 09 de Julio de 2001 13:47
> > To: Orion-Interest
>
> Subject: RE: communication among ejbs in different applications
>
>
> >
> > Hi,Juan:
> > Thank you for your
suggestion.
> > Do you think this kind of calls will violate any J2EE
specs?
> > I mean that one
> > ejb in parent application
should have one container, and the
> > ejbs in child
> > app
should have thire own container. So, the question: does
> > this kind
call
> > violate any container specs?
> > It's pretty
interesting, in one ejb of the parent app, when a
> > new
context
> > initialized, I already saw the all ejbs in child app,
but
> if I try to
> > instance one of them, the ejb got removed,
and the server
> > complained that
> > the class is not
defined, although, I put the .jar file
> > including all class
>
> in the classpath and import the ejb's remote and home
> >
interface also. The
> > error is following:
> >
>
> The lookup is=com.evermind.naming.MapNamingEnumeration@28c19b
> >
the Name is =com.qmarkets.mas.commerce.ejb.CommerceService
> >
>
> the Name is =com.qmarkets.mas.attachments.ejb.AttachmentService
>
>
> > the Name is
=com.qmarkets.mas.product.ejb.ProductService
> >
> > the Name
is =com.qmarkets.mas.user.ejb.UserService
> >
> > the Name is
=com.qmarkets.mas.contact.ejb.ContactService
> >
> > the Name
is =com.qmarkets.mas.deliveryorder.ejb.DeliveryOrderService
> >
>
> the Name is =com.qmarkets.mas.mlcaller.ejb.MLCaller
> >
>
> the Name is =java:comp
> >
> > the Name is
=com.qmarkets.mas.subscriber.ejb.SubscriberService
> >
> > the
Name is =com.qmarkets.mas.object.ejb.ObjectService
> >
> > the
Name is =com.qmarkets.mas.permissions.ejb.PermissionService
> >
>
> the ref object is
> > Call
MLQListenerBean.ejbRemove()
> > MsgReceiverStartup.onMessage:
RemoteException was thrown
> >
com.evermind.server.rmi.OrionRemoteException: Transaction was
> >
rolled back:
> > java.
> > lang.NoClassDefFoundError:
com.qmarkets.mas.user.ejb.UserServiceHome
>
> at
> >
>
MLQListener_StatelessSessionBeanWrapper2.onMessage(MLQListener_Statel
>
> essSessionBeanWrapper2.java:83)
>
> at
> >
>
com.qmarkets.ml.qlistener.client.QListenerClient.onMessage(QListenerC
>
> lient.java:103)
>
> at
> >
>
progress.message.jclient.Session.ew_(progress/message/jclient/Session
>
> .java:1313)
> >
at
> >
>
progress.message.jclient.QueueSession.run(progress/message/jclient/Qu
>
> eueSession.java:623)
>
> at
> >
>
progress.message.jclient.sl.run(progress/message/jclient/Session$Sess
>
> ionThread.java:1240)
> >
>
> Nested exception
is:
> > java.lang.NoClassDefFoundError:
> >
com.qmarkets.mas.user.ejb.UserServiceHome
>
> at
> >
>
com.qmarkets.ml.qlistener.ejb.MLQListenerBean.class$(MLQListenerBean.
>
> java:23)
> >
at
> >
>
com.qmarkets.ml.qlistener.ejb.MLQListenerBean.onMessage(MLQListenerBe
>
> an.java:89)
> >
at
> >
>
MLQListener_StatelessSessionBeanWrapper2.onMessage(MLQListener_Statel
>
> essSessionBeanWrapper2.java:53)
>
> at
> >
>
com.qmarkets.ml.qlistener.client.QListenerClient.onMessage(QListenerC
>
> lient.java:103)
>
> at
> >
>
progress.message.jclient.Session.ew_(progress/message/jclient/Session
>
> .java:1313)
> >
at
> >
>
progress.message.jclient.QueueSession.run(progress/message/jclient/Qu
>
> eueSession.java:623)
>
> at
> >
>
progress.message.jclient.sl.run(progress/message/jclient/Session$Sess
>
> ionThread.java:1240)
> >
> > Thanks!
> >
>
> Rob
> >
> > -----Original Message-----
> > From:
[EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]]On
Behalf Of
> Juan Lorandi
> > (Chile)
> > Sent: Friday,
July 06, 2001 12:43 PM
> > To: Orion-Interest
> > Subject: RE:
communication among ejbs in different applications
> >
>
>
> > Robert, the parent attribute is only available in Orion
AFAIK.
> >
> > All you need is to setup wire protocols
properly. Most are
> > RMI based (like
> > JRMP), and also,
each app server uses its own (ORMI, for instance).
> > Similary, IIOP
may be available.
> >
> > HTH
> >
> >
JP
> >
> > > -----Original Message-----
> > >
From: Robert Ren [mailto:[EMAIL PROTECTED]]
> >
> Sent: Viernes, 06 de Julio de 2001 13:43
> > > To:
[EMAIL PROTECTED]
> > > Subject: communication among ejbs in
different applications
> > >
> > >
> > >
Hi,
> > > Is there anybody had the experience to use EJB A in App 1
to
> > > call EJB B in App 2, as long as EJB C in App 2 to call EJB
D
> > > in App 1. The half of the solution is to use the
parent
> > > attribute in application tag ( one-way), but I also
need
> > > another half to form a two-way communication.
>
> > I tried to parent each other, but failed. I tried to use RMI,
>
> > but it did not work either.
> > > Any suggestion will be
highly appreciated!
> > >
> > > Have a nice
weekend!
> > >
> > > Robert Ren
> >
>
> > >
==============================================================
> > >
=============
> > > To unsubscribe, send email to
[EMAIL PROTECTED] and
> > > include in the body
> >
> of the message "signoff EJB-INTEREST". For general help,
> >
> send email to
> > > [EMAIL PROTECTED] and include in the
body of the
> message "help".
> > >
> > >
>
> > ______________________________________________________________
>
> > ______________
> > > For your protection, this e-mail
message has been scanned
> > for Viruses.
> > > Visit us at
http://www.neoris.com/
> > >
> >
>
>
> >
>
>
>
