OK, now I'm confused. Using JBoss 2.4.4, how do I correctly return application level errors from my entity bean's ejbStore method? Do I throw my own exception? Does this exception extend RemoteException, Exception? Since ejbStore actually overrides its ancestor's method, how do I declare that my own exception will be thrown? If I don't declare it as being thrown, I get a compile time error.
Thanks for any clarity on this issue, Bill Pfeiffer ----- Original Message ----- From: "Olaf Strozyk" <[EMAIL PROTECTED]> To: "danch" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Monday, January 14, 2002 7:28 PM Subject: Re: [JBoss-user] Passing Business Exception to Client > danch wrote: > > EJBException is actually a runtime exception that you use to complain to > > the container when something _really_ wacky happens that you want to > > call a system error. The EJB spec defines a business exception (AKA > > Application Exception) as a different category of exception, with > > different behavior. > > > > To throw a business exception, define separate classes for them, > > extending RemoteException, then replace your 'throws EJBException' > > declaration with your newly defined exception. > > Hi, > > sorry to interfere, but let me help out with a "not". The above has to > be "_not_ extending RemoteException". > > See the spec (Enterprise JavaBeans 2.0, Final Release, 18.1.1): > "An application exception class must be a subclass (direct or indirect) > of java.lang.Exception. An application exception class must not be > defined as a subclass of the java.lang.RuntimeException or of the > java.rmi.RemoteException." > > -Olaf > > > the biggest difference in the container's behavior (aside from passing > > the proper exception back to the client) is that when you throw an > > EJBException, the container marks your transaction Rollback-only, while > > it _doesn't_ for application exceptions. If you want your transaction > > rolled back, you'll need to call setRollbackOnly yourself (on the > > session context). > > > > -danch > > > > Bill Pfeiffer wrote: > > > > > I am having a problem with JBoss 2.4.4 and Tomcat 4.0.1. When I > > > encounter a business logic problem (or sql problem, etc) and want to > > > send it back to the client, I create and throw an EJBException. The > > > problem I am encounter is that I actually recieve, on the client > > > (Tomcat) end, an UndeclaredThrowableException which contains no info on > > > the original error. > > > > > > > > > > > > Probably related is the fact that I get these warnings when deploying my > > > beans: > > > > > > > > > > > > ------------------------------------------------------ > > > > > > [ERROR,ContainerFactory] > > > Bean : EBSecurityUser > > > Method : public abstract String getPassword() throws RemoteException, > > > EJBExcepti > > > on > > > Section: 9.2.7 > > > Warning: The exceptions thrown by methods in the remote interface must > > > be valid > > > types for RMI/IIOP > > > > > > > > > > > > [ERROR,ContainerFactory] > > > Bean : SBWebSessMgr > > > Method : public abstract SBWebSessMgr create() throws CreateException, > > > EJBExcept > > > ion, RemoteException > > > Section: 6.10.6 > > > Warning: The method return values in the home interface must be of valid > > > types f > > > or RMI/IIOP. > > > > > > > > > > > > [ERROR,ContainerFactory] > > > Bean : SBEspeedUtility > > > Method : public abstract SBCaseLockHome getSbCaseLockHome() throws > > > RemoteExcepti > > > on > > > Section: 6.10.5 > > > Warning: The method return values in the remote interface must be of > > > valid types > > > for RMI/IIOP. > > > > > > --------------------------------------- > > > > > > > > > > > > > > > > > > It appears the I am not returning throwing valid types for RMI/IIOP. > > > Any ideas what would cause this? What constitutes a valid RMI/IIOP > > > type or what would cause my objects not be considered valid RMI/IIOP types? > > > > > > > > > > > > Thanks for any assistance, > > > > > > > > > > > > Bill Pfeiffer > > > > > > > _______________________________________________ > > JBoss-user mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/jboss-user > > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user