Добавьте аннотацию @Schedule с помощью АОП в Java EE.

Я пытаюсь создать событие расписания, используя аннотацию EJB 3.1 @Schedule. Все работает нормально, пока у меня есть аннотация внутри моего компонента. Поскольку я хочу иметь возможность изменять расписание во время развертывания без переупаковки уха, я хочу добавить эту аннотацию с помощью АОП. Но это не работает.

Вот мой образец bean-компонента:

@AspectDomain(value = "TimerBeanDomain")
@Singleton
public class TimerBean {

    public void timerMethod() {
        System.out.println("Timer method activated");
    }

}

Вот мой файл aop.xml (упакованный вне -ejb.jar):

<?xml version="1.0" encoding="UTF-8"?>

<aop xmlns="urn:jboss:aop-beans:1.0">
    <domain name="TimerBeanDomain">
        <annotation expr="method(void *->timerMethod(..))">
            @javax.ejb.Schedule(second = "*/30", minute = "*", hour = "*")
        </annotation>
    </domain>
</aop>

Бин упакован внутри -ejb.jar, а файл aop находится вне этого -ejb.jar.

В консоли ошибок нет. Это просто не работает.

Я пробовал это и с bean-компонентом без гражданства. Но это не помогает. В этом случае aop.xml выглядел так

<domain name="TimerBeanDomain" extends="Stateless Bean" inheritBindings="true">

Я использую Jboss 6.0.1 и 6.1.0. По крайней мере, есть ли способ отладить процесс добавления аннотации АОП?

Любая помощь будет оценена.

С уважением, Эман


person Eman Emanovic    schedule 25.08.2011    source источник


Ответы (2)


Вы по-прежнему можете настроить расписание вне кода с помощью EJB3.1, без использования AOP, см.:

Может ли EJB 3.1 @Schedule можно настроить вне кода приложения?

person Emmanuel Touzery    schedule 13.09.2013