1

我正在尝试使用 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过程吗?

任何帮助将不胜感激。

问候, 埃曼

4

2 回答 2

1

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

EJB 3.1 @Schedule 可以在应用程序代码之外配置吗?

于 2013-09-13T14:37:06.623 回答
0

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

我将在即将到来的周末更详细地调查此事,如果我找到任何解决方法,请告诉你。

于 2011-09-15T19:40:24.627 回答