Nov*_*Guy 1 java ejb-3.1 wildfly-8
我正在尝试在 EJB3 中创建一个简单的计时器,示例取自:http : //www.adam-bien.com/roller/abien/entry/simplest_possible_ejb_3_16
我在eclipse中创建了一个动态web项目,并添加了以下代码。我没有看到任何输出
import javax.ejb.Schedule;
import javax.ejb.Stateless;
@Stateless
public class ShowCurrentTime {
@Schedule(second="*/1", minute="*",hour="*")
public void showTime() {
System.out.println("Time : " + System.currentTimeMillis());
}
}
Run Code Online (Sandbox Code Playgroud)
这在添加了以下依赖项的 maven 项目中也不起作用:
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.1_spec</artifactId>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
编辑:更新我的代码以导入 javax.annotation.PostConstruct; 导入 javax.ejb.Schedule; 导入 javax.ejb.Singleton; 导入 javax.ejb.Startup;
@Singleton
@Startup
public class ShowCurrentTime {
@Schedule(second="*/1", minute="*", hour="*", persistent = false)
public void showTime() {
System.out.println("Time : " + System.currentTimeMillis());
}
@PostConstruct
public void applicationStartup() {
showTime();
}
}
Run Code Online (Sandbox Code Playgroud)
我在输出中看到的只是初始打印 00:48:15,150 INFO [stdout] (ServerService Thread Pool -- 882) 时间:1414903695150
00:48:15,167 INFO [org.wildfly.extension.undertow] (MSC service thread 1-7) JBAS017534: Registered web context: /Test-DWP
00:48:15,202 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018565: Replaced deployment "Test-DWP.war" with deployment "Test-DWP.war"
Run Code Online (Sandbox Code Playgroud)
编辑: 更改为单例并清理部署目录并重新部署应用程序。
小智 5
对于 2017 年访问这篇文章的人。我刚刚使用 @Stateless 在 Wildfly 10 中实现了这个功能,它确实像 EJB 行为所期望的那样工作。
例子:
@Stateless
public class SchedulerInvoice {
@Schedule(dayOfWeek = "*", hour = "*", minute = "*/2", second = "0", persistent = false)
public void invoiceJobHourly() {
System.out.println("====================== INVOICE JOB START =======================");
System.out.println("====================== INVOICE JOB END =======================");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4063 次 |
| 最近记录: |