я следующий случай@Interceptor интерфейс с методами перечислений только возвращает значение по умолчанию
перехватчик Интерфейс
@Inherited
@InterceptorBinding
@Documented
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface IErrorHandlerInterceptor {
Car tyre() default Car.FOUR;
}
Enum класс
public enum Car{
FOUR,FIVE;
}
EJB Stateless класса
@ErrorHandlerInterceptor(tyre= Car.FIVE)
public List<?> getCarByName(String name) {
----------
return List<?>;
}
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
<interceptors>
<class>de.festado.interceptor.impl.ErrorHandlerInterceptor</class>
</interceptors>
</beans>
Реализация перехватчик
@IErrorHandlerInterceptor
@Interceptor
public class ErrorHandlerInterceptor {
@AroundInvoke
public Object intercept(InvocationContext context) throws Exception {
IErrorHandlerInterceptor ei = getClass().getAnnotation(IErrorHandlerInterceptor.class);
String tyresNumber= ei.tyre().toString();
try {
return context.proceed();
} catch(Exception e) {
....
} finally {
.....
}
return null;
}
Теперь моя проблема:
всякий раз, когда я называю String tyresNumber= ei.tyre().toString();
он просто возвращает мне значение по умолчанию, которое я установил в объявлении интерфейса.
Что я здесь делаю неправильно? Я что-то забыл?
Спасибо за вашу помощь