Mar*_*rio 6 java ejb timer glassfish java-ee
我有这个设置的问题,我甚至无法查看日志.
这是我的@Singleton @StartupEJB:
@Singleton
@Startup
@DependsOn("SchedulerEJB")
public class SchedulerStartUp {
private static Logger log = Logger.getLogger(SchedulerStartUp.class);
@EJB
SchedulerEJB schedEJB;
@PostConstruct
public void atStartup() {
log.info("startUp")
System.out.println("startUp");
schedEJB.cancelTimer("EBlastScheduler");
schedEJB.createTimer("*/1", "*", "*");
}
}
Run Code Online (Sandbox Code Playgroud)
的SchedulerEJB:
@Stateless
public class SchedulerEJB {
@Resource
TimerService timerService;
public cancelTimer(String timerInfo){/*...*/}
public createTimer(String sec, String min, String hour) {/*...*/}
@Timeout
public void execute(Timer timer) {/*...*/}
}
Run Code Online (Sandbox Code Playgroud)
Maven pom:
//Been Using Glassfishv3.0.1 and EJB3.1 with a dependency of:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
您有无效的bean类型作为@DependsOn的属性.DependsOn用于表示两个Singleton会话bean之间的依赖关系,而不是Singleton和Stateless之间的依赖关系.您应该将SchedulerEJB更改为Singleton或删除依赖项.
如果您决定将SchedulerEJB更改为Singleton,那么也不需要@DepensOn,因为(来自EJB 3.1规范):
请注意,如果一个Singleton只需要从其PostConstruct方法调用另一个Singleton,则不需要显式的排序元数据.在这种情况下,第一个Singleton只会使用ejb引用来调用目标Singleton.在那里,ejb引用的获取(通过注入或查找)并不一定意味着实际创建相应的Singleton bean实例.
| 归档时间: |
|
| 查看次数: |
10603 次 |
| 最近记录: |