我正在尝试使用 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过程吗?
任何帮助将不胜感激。
问候, 埃曼