|
From: Colin S. <col...@ex...> - 2003-11-14 19:25:24
|
The spec is actually quite clear (i.e. look at 7.10.3 for a Session
Bean's ejbCreate contract, where they say explicitely that application
exceptions _may_ be thrown, including CreateException). So I think the
people who created those examples don't know the correct spec. Probably
those appserver which allow the throw are doing it either because the
authors (of the appserver) didn't realize the behaviour was different,
and just carried over their validation to be the same as for other bean
types, or they made them allow non-compliant code in order to work with
more user code, since this is likely to be a common error.
tri...@tr... wrote:
>+1 for removing it.
>
>It looks like you are all correct - WebLogic seems to think that CreateException
>should be thrown from the ejbCreate method - but from my experience it works
>without this throws clause. I don't remember where I copied my generic
>messagebean implementation from, but I did not have this throws clause and
>WebLogic has never complained.
>
>
>This is from
>/bea/weblogic700/samples/server/src/examples/ejb20/message/MessageTraderBean.java
>
> /**
> * This method corresponds to the create method in the home interface
> * "TraderHome.java".
> * The parameter sets of the two methods are identical. When the client calls
> * <code>TraderHome.create()</code>, the container allocates an instance of
> * the EJBean and calls <code>ejbCreate()</code>.
> *
> * @exception javax.ejb.CreateException if there is
> * a communications or systems failure
> * @see examples.ejb11.basic.statelessMessageDriven.Trader
> */
> public void ejbCreate () throws CreateException {
>
> }
>
>Also see:
>http://edocs.bea.com/wls/docs81/javadocs/weblogic/ejb/GenericMessageDrivenBean.html
>
>My take on this is that the messagebean should throw an EJBException if there is
>a communications or system failure.
>
>Thomas
>
>
>Quoting Rod Johnson <rod...@in...>:
>
>
>
>>Yes, as the bug entries say I took the decision that it is incorrect
>>according to the spec, but the WebLogic examples do throw CreateException.
>>And the user reported that it _did_ still work in JBoss, so I figured that I
>>didn't want to have to go test it in all EJB containers. (Ie I didn't have
>>time to retest it in WLS.)
>>
>>However, you probably should change it.
>>
>>Regards,
>>Rod
>>
>>----- Original Message -----
>>From: "jürgen höller [werk3AT]" <jue...@we...>
>>To: <spr...@li...>
>>Sent: Friday, November 14, 2003 5:40 PM
>>Subject: Re: [Springframework-developer] AbstractMessageDrivenBean's
>>ejbCreate method is not spec compliant, I am going to change it
>>
>>
>>There's a bug entry on SourceForge for this:
>>
>>
>>
>http://sourceforge.net/tracker/index.php?func=detail&aid=823990&group_id=73357&atid=537539
>
>
>>Juergen
>>
>>________________________________
>>
>>Von: spr...@li... im Auftrag von
>>Colin Sampaleanu
>>Gesendet: Fr 14.11.2003 18:41
>>An: spr...@li...
>>Betreff: [Springframework-developer] AbstractMessageDrivenBean's ejbCreate
>>method is not spec compliant, I am going to change it
>>
>>
>>
>>AbstractMessageDrivenBean currently has the following ejbCreate method:
>>
>> /**
>> * Lifecycle method required by the EJB specification but not
>> * the MessageDrivenBean interface.
>> * <p>This implementation loads the BeanFactory. Don't override it
>> * (although it can't be made final): code your initialization in
>> * onEjbCreate(), which is called when the BeanFactory is available.
>> * <p>Unfortunately we can't load the BeanFactory in
>>setSessionContext(),
>> * as ResourceManager access isn't permitted and the BeanFactory may
>>require it.
>> */
>> public void ejbCreate() throws CreateException {
>> loadBeanFactory();
>> onEjbCreate();
>> }
>>
>>This is actually not spec compliant. If you look at the spec, section
>>15.7.3, it states that MessageDrivenBeans must not throw application
>>exceptions. CreateException is an application exception, and in fact
>>JBoss, for example, will not allow an MDB with this create method to load.
>>
>>So I am going to change this to remove the exception, after I get back
>>from lunch. If anybody disagrees with me, before or after that, please
>>let me know.
>>
>>(lucky me, still putzin' around with legacy EJB code...)
>>
>>Regards,
>>Colin
>>
>>
>>
>>
>>
>>-------------------------------------------------------
>>This SF. Net email is sponsored by: GoToMyPC
>>GoToMyPC is the fast, easy and secure way to access your computer from
>>any Web browser or wireless device. Click here to Try it Free!
>>https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
>>_______________________________________________
>>Springframework-developer mailing list
>>Spr...@li...
>>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>>
>>
>>-------------------------------------------------------
>>This SF. Net email is sponsored by: GoToMyPC
>>GoToMyPC is the fast, easy and secure way to access your computer from
>>any Web browser or wireless device. Click here to Try it Free!
>>https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=/g22lp.tmpl
>>_______________________________________________
>>Springframework-developer mailing list
>>Spr...@li...
>>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>>
>>
>>-------------------------------------------------------
>>This SF. Net email is sponsored by: GoToMyPC
>>GoToMyPC is the fast, easy and secure way to access your computer from
>>any Web browser or wireless device. Click here to Try it Free!
>>https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
>>_______________________________________________
>>Springframework-developer mailing list
>>Spr...@li...
>>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>>
>
>
>
>
>
>-------------------------------------------------------
>This SF. Net email is sponsored by: GoToMyPC
>GoToMyPC is the fast, easy and secure way to access your computer from
>any Web browser or wireless device. Click here to Try it Free!
>https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
|