Java 如何包装webservice使用者的EJBAccessException?

Java 如何包装webservice使用者的EJBAccessException?,java,web-services,security,jakarta-ee,ejb-3.0,Java,Web Services,Security,Jakarta Ee,Ejb 3.0,考虑这个简单的例子: @Stateless @WebService public class AccountService { @WebMethod @RolesAllowed("CUSTOMER") public void replenishBalance(double amount) { // } @WebMethod @RolesAllowed("BOSS") public void emptyBankAccounts() { // }

考虑这个简单的例子:

@Stateless
@WebService
public class AccountService {

  @WebMethod
  @RolesAllowed("CUSTOMER")
  public void replenishBalance(double amount) {
    //
  }

  @WebMethod
  @RolesAllowed("BOSS")
  public void emptyBankAccounts() {
    //
  }
}
如果角色授权失败,EJB容器将抛出
EJBAccessException
,而不输入任何这些方法。异常将由webservice堆栈包装,最终导致一种“javax.ejb.EJBAccessException:Client not authorized for this invocation”显示在消费者的stacktrace中

尽管如此,这两个都是业务方法(至少是第一个),错误地调用它们也是一个业务案例,我希望能够使它们抛出声明的
@WebFault
异常,以便webservice使用者也能够处理安全异常

可能吗

PS:运行Glassfish 3.1.2,Metro WS-Stack