Добавьте аннотацию @Schedule, используя AOP в Java EE - PullRequest
1 голос
/ 25 августа 2011

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

Вот мой образец бобов:

@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.

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

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

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

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

Любая помощь будет признательна.

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

Ответы [ 2 ]

1 голос
/ 13 сентября 2013

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

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

0 голосов
/ 15 сентября 2011

Вероятно, это известная ошибка: https://issues.jboss.org/browse/EJBTHREE-1632

Я расскажу об этом более подробно во время предстоящих выходных и сообщу, найду ли я обходной путь.

...