servlet正在调用EJB的方法(名称为EJB B)。 EJB B是EJB A的子类,它包含该方法,并且不会被EJB B覆盖。
EJB A使用注释@RolesAllowed({“user”,“system”,“admin”})
EJB B使用注释@RolesAllowed({“system”})
当servlet调用时,会产生以下错误:
JBAS014134:对于方法xxxx,组件EJB B上的EJB调用失败:javax.ejb.EJBAccessException:JBAS014502:方法上的调用:xxxx抛出bean的异常:不允许EJB B
如果我用@PermitAll替换EJB A注释,则调用该方法时没有权限问题。
我想知道为什么在注释中忽略EJB A中允许的'system'角色并抛出异常。