我对此设置有问题,甚至无法查看日志。
这是我的@Singleton
@Startup
EJB:
@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", "*", "*");
}
}
的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) {/*...*/}
}
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>
您具有无效的bean类型作为@DependsOn的属性。DependsOn用于表达两个Singleton会话Bean之间的依赖性,而不是Singleton和Stateless之间的依赖性。您应该将SchedulerEJB更改为Singleton或删除依赖项。
如果您决定将SchedulerEJB更改为Singleton,则也不需要@DepensOn,因为(根据EJB 3.1规范):
请注意,如果一个Singleton仅需要从其PostConstruct方法调用另一个Singleton,则不需要显式的排序元数据。在这种情况下,第一个Singleton将仅使用ejb引用来调用目标Singleton。在那里,获取ejb参考(通过注入或查找)不一定意味着实际创建了相应的Singleton
bean实例。
我正在使用spring,我想在启动我的应用程序之前缓存一些数据。 我在其他帖子中找到了一些使用@PostConstruct来调用我的@Service方法的解决方案(这些方法被注释为@Cacheable),例如。如何在spring启动时加载@Cache?我这样做了,但当应用程序启动后,我调用RESTendpoint,它再次调用这个服务方法,它会在另一次发送数据库请求(所以它还没有缓存)。当我第二次向
在上运行的应用程序的上下文中,在执行任何业务方法之前,我需要执行许多启动任务。为此使用,bean似乎是一个很有前途的解决方案。然而,我并不完全清楚应用程序生命周期到底是什么样子。EJB 3.1规范规定了以下内容: 默认情况下,容器负责决定何时初始化单例bean实例。但是,bean开发人员可以选择性地配置单例以进行快速初始化。如果启动注释出现在Singleton bean类上,或者如果Singlet
我做了一个名为AcessoCliente的单例类 但我需要对我的单例类执行一个名为ValidadorNivelDeAcessoBusiness的类的依赖注入
我们编写了这样一个简单的类: [...] 启动服务器(WildFly 10.1.0)时,出现以下错误: 15:35:27142错误[stderr](ServerService线程池--58)log4j:警告找不到记录器(com.test.ContactFormScheduler)的附加程序。 15:35:27,143错误[stderr](ServerService线程池--58)log4j:警告请
我有一种字体在IE8和IE9以及所有其他浏览器中都能正常工作,但第二种字体只在IE9和其他浏览器中工作。在IE8中,我得到了一个错误: “CSS3111:@font-face遇到未知错误。” 我一直在四处看书,尝试了很多事情,但都没有运气。 我的代码是: 我试过用几个不同的生成器多次重新生成eot,玩过CSS,玩过头,玩过域,等等,但是看起来它们都很好。如前所述,相同的代码在相同的,只是指向不同的
我正在制作一个基于Java EE的产品,其中我使用了GlassFish 3和EJB 3.1。 我的应用程序有会话bean,一个调度程序,并且使用web服务。我最近了解了Apache TomEE,它支持上下文和依赖注入(CDI)。GlassFish容器也支持CDI。 如果我不需要CDI也不提供的任何特性,我可以替换会话bean吗?如果那样的话,我能得到什么好处呢?