The bean just calls a static method which return an object. I can't see a
difference for the bean about the way this class instantiate the object
(reflection or not). But I'm not shure about the spec here. It's claer, that
it is forbidden to create a bean itself via reflection. This is the
responsebility of the container.

I use delegation and not inheritance because I don't want declare many beans
with th same interface in the deployment descriptor. (And don't see a other
way assigning a remote inteface to different implementations.) It works for
us without problems.

Of cause You can inherit Your beans and bean interfaces from other classes. 
Examle:

public interface ListableHome extends EJBHome {
        java.util.Collection findByGroup(String groupId) throws
FinderException, RemoteException;
}  

were ListableHome is superclass for some home interfaces

and 



public interface Listable extends EJBObject {
        String getTitle() throws RemoteException;
        String getId() throws RemoteException;
}

is superclass for the corresponding bean class

Now You can create a list of beans (i.e. a html select) without knowin the
beanclass in the code:

ListableHome lh = (ListableHome)initial.lookup(entity); 
Collection  lset = lh.findByGroup(type);
Iterator it = lset.iterator();
Listable le;
   while (it.hasNext()) {
        le=(Listable)it.next();
        title=le.getTitle();
        id=le.getId();
}

> -----Original Message-----
> From: ZHU Jia [SMTP:[EMAIL PROTECTED]]
> Sent: 04 July 2001 09:15
> To:   [EMAIL PROTECTED]
> Subject:      Re: [JBoss-user] Help! - Can EJB inherit from normal
> classes? Packaging  with normal classes?
> 
> Many thanks for the detailed information!
> But I've some questions here:
> 1. I thought reflection is forbidden by the EJB spec, have you used it
> successfully in your code?
> 2. As far as I see, the way you do it is delegation and not inheritence,
> and you don't make this for conversion of individual Java class to EJB
> but as a general solution, right? So what's your experience with it
> performance-wise? And would it always work?
> 
> Many thanks in advance!
> 
> regards
> ZHU Jia
> 
> "Schouten, Andreas" schrieb:
> > 
> > Hello Jia!
> > 
> > We migated the folowd situation to ejb
> > 
> > Class ImplBasic implements InterfaceA
> > 
> > Class Impl1 extendes ImplBasic
> > Class Impl2 extendes ImplBasic
> > Class Impl3 extendes ImplBasic
> > ...
> > 
> > InterfaceA obj  = (Inter...)new Implx(...)
> > 
> > as
> > 
> > MyRemote extends InterfaceA, EJBObject
> > 
> > MyBean extends SessionBean {
> >         private InterfaceA delegate;
> > 
> >         ejbCreate(String implementationClass){
> >                 delegate = (InterfaceA)
> > ImplBasic.getInstanceOf(implementationClass);
> > ....
> >         aInterfaceMethod(...) {
> >                 delegate.aInterfaceMethod();
> >         }
> > 
> > where getInstaceOf creates a instance of the implementation class via
> > reflection.
> > 
> > Thats the only way I saw to implement a remote interface with many
> > implementations. Maybe there is a better way?
> > 
> > Andreas
> > 
> > >   -----Original Message-----
> > > From: ZHU Jia [SMTP:[EMAIL PROTECTED]]
> > > Sent: 03 July 2001 07:28
> > > To:   EJBList; [EMAIL PROTECTED]
> > > Cc:   jboss-user
> > > Subject:      [JBoss-user] Help! - Can EJB inherit from normal
> classes?
> > > Packaging with normal classes?
> > >
> > > Hello,
> > >
> > > I've a question on inheritence in EJB.
> > > As I'm working on the adaption of an existing Java framework, I have
> to
> > > convert many normal Java classes to EJB. But I'm not sure what to do
> with
> > > the inheritence. Someone in the list suggested I let the
> RemoteInterface
> > > inherit from some super interface and let the BeanClass inherit from
> the
> > > super implementation. This way, if a type of the super interface is
> > > expected, then an EJB RemoteInterface can be returned, which looks
> quite
> > > reasonable to me, so I was trying to do just that.
> > > But the problem is, I didn't seem to be able to compile because I
> cann't
> > > have any constructor in the BeanClass (O'Reilly book), which I do have
> in
> > > the original class that the bean should substitute:-(
> > > I know, normlly the stuff in the constructor is done in the ejbCreate,
> but
> > > in my case, I have invokation of super() in the constructor, which is
> of
> > > course bad for EJB. But it didn't work even if I don't use the super()
> but
> > > move the init code from super class to the bean, compiler simply says
> it
> > > cann't deal with the constructor in the super class:-(
> > > Now I'm wondering, is it that I've done something wrong or is such
> thing
> > > not
> > > possible by definition? Anyone with experience here, comments are
> heartily
> > > welcome!
> > > Also, another question would be: If the purpose of an EJB is to
> substitute
> > > some normal class, should I put it in it's own package, or should I
> leave
> > > it
> > > in the original package? If I put it in a new package, then many
> > > "protected"
> > > access modifier has to be "cracked open" to "public" in the original
> > > package, which seems hairy to me. But I don't know whether it's
> > > possible/feasible to package EJBs with the normal classes and make
> them
> > > one
> > > big jar, will the app server have any problem with it?
> > > The problems are quite urgent and I'm looking forward to your reply!
> > > Many thanks in advance!
> > >
> > > regards
> > > ZHU Jia
> > >
> > >
> > > _______________________________________________
> > > JBoss-user mailing list
> > > [EMAIL PROTECTED]
> > > http://lists.sourceforge.net/lists/listinfo/jboss-user
> > 
> > If you have received this e-mail in error or wish to read our e-mail
> disclaimer statement and monitoring policy, please refer to
> > http://www.drkw.com/disc/email/ or contact the sender.
> > 
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/jboss-user
> 
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user

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

Reply via email to