Chris,

You shouldn't have to cast your home interfaces; in fact, you can share 
the same remote and home interface for all your "Form" EJB 
implementations.  Try this, for example:

// interfaces/beans

public interface Form extends EJBObject;
public interface FormHome extends EJBHome;
public class FooForm implements SessionBean;
public class BarForm implements SessionBean;

// inside servlet (bad code for ease of example)...

public void service(HttpRequest req, HttpResponse res) {
        String formName = req.getParameter("formName");
        try {
                InitialContext ctx = new InitialContext();
                Object ref;
                if ( formName.equals("foo") )
                        ref = ctx.lookup("java:comp/env/ejb/FooForm");
                else if ( formName.equals("bar") )
                        ref = ctx.lookup("java:comp/env/ejb/BarForm");
                else
                        // do something...
                FormHome home = (FormHome)PortableRemoteObject.narrow(ref, 
FormHome.class);
                Form form = home.create();
                // now use the generic form interface...
        } catch (Exception e) {
                throw new ServletException(e);
        }
}

Basically, your deployment descriptor will specifcy the same <remote> 
and <home> interfaces for both FooForm and BarForm, but will obviously 
have different <ejb-class>'s bound to different JNDI names.  Your 
implementations of FooForm and BarForm can be radically different, but 
since you said they will have the same method signatures, the client 
code can just use the "Form" interface.

Hope this helps,
David

--

Chris Adams wrote:

> Hi,
> 
> Need some help with remote casting objects when using ejb's
> 
> I'm going to have a set of bean which each represent a form. Each for has
> the same set of methods, but they need to be independent ejb's because each
> has different details.
> 
> The client is a servlet, which will receive a parameter
> the type of form to return. This then needs to get the home interface of
> the bean. I am going to have a properties file which pairs the form name to
> it's home interface class name.
> 
> My problem is that the lookup method just returns an object, so how can I
> cast this object to the correct home interface, as the type of form is not
> know until the servlet is called.
> 
> I've tried creating standard interfaces, which all form beans could inheret
> from, but came up with all sort of problems.
> 
> I could use relfection to call the methods, but would prefer not to. Any
> ideas.
> 
> Many Thanks
> 
> Chris Adams
> 
> 
> 
> 
> Chris Adams 
> ============================== 
> Regus Computer Services Ltd 
> Direct Line: 01279 712010 
> ESN: 6-741-2010 
> Switchboard ESN: 6-741-2000 
> Tel: +44 (0)1279 507988 
> Fax: +44 (0)1279 507783 
> E-mail: [EMAIL PROTECTED] 
> <http://47.137.128.160/regus> 
> <http://www.regus-cs.co.uk/> 
> ============================== 
> 
> 
> 
> 
> Regus Computer Services Ltd. 
> The information transmitted is intended solely for the person or entity to
> which it is addressed and may contain confidential and/or privileged
> material. Any retention, review, retransmission, dissemination, other use,
> or taking any action relying on this information by persons or entities,
> other than the intended recipient is prohibited. If you received this in
> error, please contact the sender and delete the material from any computer.
> We will not be liable for direct, indirect or consequential damages arising
> from the alteration of the contents of this e-mail by a third party or as a
> result of any virus. 
> 
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user
> 


-- 

-----------------------------------------------------------------------
David Ward                                        [EMAIL PROTECTED]
Senior Software Engineer                          http://www.dotech.com
Distributed Object Technologies, Inc.             716-381-8320 (phone)
500 Linden Oaks, Rochester, NY 14625              716-381-0598 (fax)


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

Reply via email to