在Java EE中使用AOP添加@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过程吗?
任何帮助将不胜感激。
问候, 伊曼
I am trying to create schedule event using EJB 3.1 @Schedule annotation. Everything works fine as long as I have the annotation inside my bean. Because I want to be able to change schedule in deploy time without repacking ear I want to add this annotation using AOP. But this does not work.
Here is my sample bean:
@AspectDomain(value = "TimerBeanDomain")
@Singleton
public class TimerBean {
public void timerMethod() {
System.out.println("Timer method activated");
}
}
Here is my aop.xml file (packed outside -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 is packed inside -ejb.jar and aop file is outside this -ejb.jar.
There are no errors in console. It just does not work.
I tried it with stateless bean as well. But it does not help. In this case aop.xml looked like
<domain name="TimerBeanDomain" extends="Stateless Bean" inheritBindings="true">
I am using Jboss 6.0.1 and 6.1.0. At least is there some way how to debug the AOP process of adding annotation?
Any help will be appreciate.
Regards, Eman
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您仍然可以使用 EJB3.1 在代码外部配置计划,而不使用 AOP,请参阅:
可以在应用程序代码之外配置 EJB 3.1 @Schedule 吗?
You can still configure the schedule outside of the code with EJB3.1, without using AOP, see:
Can the EJB 3.1 @Schedule be configured outside of the application code?
可能是一个已知的错误: https://issues.jboss.org/browse/EJBTHREE-1632< /a>
我将在接下来的周末和周末更详细地研究此事。如果我找到任何解决方法,请告诉您。
Probably it's a known bug: https://issues.jboss.org/browse/EJBTHREE-1632
I shall look into the matter in a bit more detail during forthcoming weekends & let you know if I find any work-around.