aspose file tools*
The moose likes EJB Certification (SCBCD/OCPJBCD) and the fly likes must not declare remote exception. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » EJB Certification (SCBCD/OCPJBCD)
Bookmark "must not declare remote exception." Watch "must not declare remote exception." New topic
Author

must not declare remote exception.

Murthy Cherukumilli
Ranch Hand

Joined: Aug 05, 2004
Posts: 45
In the HFEJB again it is stated that the home methods must not throw Remote Exceptions can somebody explain me the reasoning behind this please.


Thanks<br />Murthy (SCJP 1.4 , SCWCD 1.4)
Paul Maessen
Greenhorn

Joined: Sep 27, 2004
Posts: 12
Although they are *declared* in the remote home and component interfaces your bean code should not throw remote exceptions itself.

Instead, you should throw a javax.ejb.EJBException or (rethrow) a RuntimeException in the case of unrecoverable errors, or else an application exception.
Murthy Cherukumilli
Ranch Hand

Joined: Aug 05, 2004
Posts: 45
That is re-stating my question ... i was asking for a reasonging if any..
Kathy Sierra
Cowgirl and Author
Ranch Hand

Joined: Oct 10, 2002
Posts: 1572
Howdy -- in EJB 1.0, you (bean developer) *could* declare (and thus throw) RemoteException from your methods, but this was deprecated with EJB 1.1.

I think the main reason was that RemoteException is really meant as a system exception, not an application exception, and the standard now is to use EJBException as the mechanism for communicating ALL system exceptions to the Container. Which means of course that if you *catch* a RemoteException in your bean methods, you must rethrow it as an EJBException.

Does that help?
-Kathy
Paulus Maessen
Greenhorn

Joined: Sep 29, 2004
Posts: 12
The reason behind this is that it makes your bean code more open: if you would throw a RemoteException you can't expose the method in a local home/component interface.

If instead you throw a EJBException you can, if the interface is remote the container will wrap your EJBException in a RemoteException.
Naslai Shobha
Greenhorn

Joined: Aug 18, 2004
Posts: 12
The reason behind this is that it makes your bean code more open: if you would throw a RemoteException you can't expose the method in a local home/component interface.

If instead you throw a EJBException you can, if the interface is remote the container will wrap your EJBException in a RemoteException.

Hi Paulus,
When we say home methods, these methods are defined in the interface extending from EJBHome or EJBLocalHome.
How can we have an option of exposing the home methods in local home or remote home?
Pls explain.
Thanks
Shobha
SCJP 1.2, SCWCD
Paulus Maessen
Greenhorn

Joined: Sep 29, 2004
Posts: 12
Hi Shobha,

By home methods I mean the business methods that you can define on the local or remote home interface of entity beans, not the methods on the EJB(Local)Home itself.

These methods are implemented on the component interface of the bean (the ejbHome... methods).

Does this answer your question?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: must not declare remote exception.