在Java EE中使用AOP添加@Schedule注释

时间:2011-08-25 06:08:05

标签: java-ee jboss aop ejb-3.1 schedule

我正在尝试使用EJB 3.1 @Schedule注释创建计划事件。只要我在bean中有注释,一切正常。因为我希望能够在不重新包装耳朵的情况下更改部署时间表,我想使用AOP添加此注释。但这不起作用。

这是我的示例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>

Bean在-ejb.jar中打包,aop文件在-ejb.jar之外。

控制台中没有错误。它只是不起作用。

我也尝试过无状态bean。但它没有帮助。在这种情况下,aop.xml看起来像

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

我使用的是Jboss 6.0.1和6.1.0。至少在某种程度上如何调试添加注释的AOP过程?

任何帮助都将受到赞赏。

问候,Eman

2 个答案:

答案 0 :(得分:1)

您仍然可以使用EJB3.1在代码之外配置计划,而不使用AOP,请参阅:

Can the EJB 3.1 @Schedule be configured outside of the application code?

答案 1 :(得分:0)

可能这是一个已知的错误:https://issues.jboss.org/browse/EJBTHREE-1632

我将在即将到来的周末更详细地研究这个问题。如果我发现任何解决办法,请通知你。