Ich verwende Java EE 6 & Jboss AS7.1 und versuchen, Interceptor-Bindung (Example from jboss site) zu verwenden.Interceptor-Methode nicht mit Interceptor-Bindung
Ich habe eine InterceptorBinding Anmerkung:
@InterceptorBinding
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface GeoRestrictedEquipment {
}
Der Interceptor:
@GeoRestrictedEquipment
@Interceptor
public class GeoRestrictedEquipmentInterceptor {
@EJB EquipmentDao equipmenttDao;
@EJB SecurityService securityService;
@AroundInvoke
public Object checker(InvocationContext ctx) throws Exception {
Integer id = (Integer) ctx.getParameters()[0];
Equipment equipment = equipmenttDao.findById(id);
GeoChecker.check(equipment.getSite(), securityService.getUser());
return ctx.proceed();
}
}
Und eine Bohne:
@Stateless
@LocalBean
@SecurityDomain(Realm.NAME)
@RolesAllowed({ Roles.REGISTERED })
public class PumpService implements PumpServiceLocal {
@Override
@GeoRestrictedEquipment
public PumpInfos getPumpInfos(Integer pumpId) {
/* ... */
}
}
Aber die Abfangjäger nicht aufgerufen ... Was muss ich tun Miss von dem Beispiel?
Der Interceptor aufgerufen wird, wenn ich dies schreibe:
@Override
@Interceptors({GeoRestrictedEquipmentInterceptor.class})
public PumpInfos getPumpInfos(Integer pumpId) {
/* ... */
}
Vielen Dank für Ihre Hilfe.
Vielen Dank, ich las das Beispiel zu schnell, ich dachte, dass mit Annotationen war es nicht obligatorisch, die beans.xml zu verwenden, aber in Wirklichkeit ist es ... –
Dies scheint auch mit JavaEE7 der Fall zu sein. –