GlassFish 2.1 和 GlassFish 中未调用 @Schedule 注释的方法EJB 3

发布于 2024-11-29 01:26:26 字数 336 浏览 2 评论 0原文

在我的无状态 bean 中,我有以下几行:

@Schedule(minute="*/2", hour="*")
public void doSomething() {}

我希望该方法每 2 分钟调用一次,但是当我部署它时,什么也没有发生。此外,如果我将 @Schedule 放入一个 bean 中,并且没有客户端调用此 bean 的任何方法(尚未创建 bean 实例),那么容器或其他任何东西会每 2 分钟调用此方法吗?

这是我第一次使用@Schedule注释,如果有人能给我一些关于这些问题的建议,我将非常感激。

最好的问候,

詹姆斯·特兰

In my Stateless bean, I have the following lines:

@Schedule(minute="*/2", hour="*")
public void doSomething() {}

I expect that this method would be called every 2 minutes but when I deploy it, nothing happens. Besides, if I put @Schedule in a bean and no client invokes any methods of this bean (the bean instance has not been created yet), will the container or anything call this method every 2 minutes?

This is the first time I have used @Schedule annotation, I'd be very grateful if someone could give me some advice on these matters.

Best regards,

James Tran

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷情妓 2024-12-06 01:26:26

此处是来自 EE 6 文档的计时器服务链接。

请注意相关部分 -

当部署包含使用 @Schedule 或 @Schedules 注释的方法的企业 Bean 时,EJB 容器会创建自动计时器。企业 Bean 可以具有多个自动超时方法,与编程计时器不同,编程计时器只允许在企业 Bean 类中使用 @Timeout 注释来注释一种方法。

您可以尝试从 ejb-jar.xml 进行自动调度,而不是使用 @Schedule(如果这有什么区别)。从表面上看,我看不出你的设置有什么问题,除非尝试

@Schedule(minute="0/2", hour="*")

编辑请参阅下面@bkails的评论。这可能不会给你买任何东西。

Here is the link on timer service from EE 6 docs.

Note the relevant part --

Automatic timers are created by the EJB container when an enterprise bean that contains methods annotated with the @Schedule or @Schedules annotations is deployed. An enterprise bean can have multiple automatic timeout methods, unlike a programmatic timer, which allows only one method annotated with the @Timeout annotation in the enterprise bean class.

You could try doing the automatic scheduling from ejb-jar.xml instead of using @Schedule if that makes any difference. From the looks of it, I can't see anything wrong with how you've set it up except maybe to try

@Schedule(minute="0/2", hour="*")

EDIT See @bkails' comment below. That's probably not going to buy you anything.

痕至 2024-12-06 01:26:26

我将 NetBean 6.7.1 与 Java EE 5 和 GlassFish v2.1 结合使用。在我安装带有 Java EE 6 和 GlassFish v3.1 的 NetBean 7.0.1 并使用它来部署我的应用程序后,@Schedule 注释终于可以按预期工作。

I was using NetBean 6.7.1 with Java EE 5 and GlassFish v2.1. After I installed NetBean 7.0.1 with Java EE 6 and GlassFish v3.1 and use it to deploy my application, the @Schedule annotation could finally work as expected.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文