The spec lead at Sun was kind enough to answer my question. Here's the results:

Of course, the JBoss implementation is operating per design and spec. 

This means, all unchecked (and extending RuntimeException) exceptions that are 
not in the control of the business method developer, should not be included in 
the throws clause of a business method.

For example, don't do this in the SLSB:


  | public void findWidget (Integer widgetId)
  |     throws javax.persistence.EntityNotFoundException
  | 

Doing so, makes for a confusing contract with the client. In the example the 
EntityNotFoundException will be treated as a system exception and wrapped with 
EJBException before it is passed to the client.

If you own the exception, you can annotate with @ApplicationException. 
Otherwise, you have two choices:

- catch, wrap, and throw your own exception
- use application-exception deployment descriptor to affect all occurrences of 
the exception



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038174#4038174

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038174
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to