Glassfish EJB计时器服务不可用,上下文取消部署失败
我有以下代码:Glassfish EJB计时器服务不可用,上下文取消部署失败,glassfish,ejb,Glassfish,Ejb,我有以下代码: package ejbs; import javax.annotation.Resource; import javax.ejb.Singleton; import javax.ejb.Timeout; import javax.ejb.Timer; import javax.ejb.TimerConfig; import javax.ejb.TimerService; @Singleton public class timerbackup { @Resource priv
package ejbs;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerConfig;
import javax.ejb.TimerService;
@Singleton
public class timerbackup {
@Resource
private TimerService timerservice;
@Timeout
public void methodTimeout(Timer timer)
{
System.out.println("timeout");
}
public void settimer(long in)
{
Timer timer=timerservice.createSingleActionTimer(in,new TimerConfig());
}
}
部署应用程序后出现错误消息“EJB计时器服务不可用”
为了解决这个问题,我遵循以下步骤:
Severe: Exception while loading the app
Severe: Undeployment failed for context /ProjetoEE1
Info: /file:/E:/formacaoJAVA/2moduloJEE/pratica/projecto_final /projfinal2/ProjetoEE1/build/web/WEB-INF/classes/_DEFAULT_PU logout successful
Warning: EJB Timer Service is not available. Timers for application with id 96332697224871936 will not be deleted
本文还提到了这个问题,并在中提出了解决方案
中介绍的解决方案基本上包括删除一些文件。答案基本上是这样的:
import javax.ejb.Singleton;
与
这对我有用。我使用的是Derby数据库,您的情况如何?我解决了这个问题。如果我记得的话,我创建了一个新的JDBC资源和一个新的JDBC连接池 下面的链接解释了如何创建JDBC资源和JDBC连接池。 JDBC资源和JDBC连接池可以使用管理控制台或asadmin实用程序创建 下面的链接解释了如何使用asadmin实用程序。 (我使用此实用程序是因为在管理控制台中,当我尝试创建JDBC资源和JDBC连接池时,出现了一个错误) 在管理控制台中,在创建的JDBC资源中,“Pool Name”字段应等于创建的JDBC连接池的名称 之后,我遵循以下步骤:
删除标记将解决此问题。位于as install parent/glassfish/domains/domain name/generated/ejb/下的标记文件“ejb timer service app”。别忘了重新启动Glassfish 您好,如果您使用glassfish 4.1.1,我也遇到了同样的问题。服务器中的计时器可能不稳定。
解决方案:将glassfish 4.1更新为glassfish 5,并在新服务器中部署web应用程序我认为计时器非常重要,可能很多人都有同样的问题,他们不知道如何解决。你为什么这么认为?首先,你应该正确地标记你的问题。在您发布的代码中,您在哪里看到了“jsf”?我建议将其标记为“ejb”,而且它似乎与GlassFish有很强的相关性,因此将该标记添加到@Kukeltje@Kukeltje(并删除jsf标记)中,非常感谢。
import javax.inject.Singleton;