我正在尝试使用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
答案 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
我将在即将到来的周末更详细地研究这个问题。如果我发现任何解决办法,请通知你。