我有以下代码: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
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定时服务不可用”。
为了解决这个问题,我按照这些步骤:
- 访问glash鱼管理控制台(http://localhost:4848)
- 转到配置 - >服务器配置 - >EJB容器
- 选择标签EJB定时器服务
- 然后填写定时器数据源:用JDBC资源(我用 “的jdbc/projecto_final”)
- 重启服务器
正如Set/configure the EJB Timer Service’s DataSource建议。
这会导致TimerService停止工作。部署应用程序后,将出现以下错误消息:
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
的Set/configure the EJB Timer Service’s DataSource也提到这个问题,并在Glassfish DeploymentException: Error in linking security policy for呈现的溶液。
Glassfish DeploymentException: Error in linking security policy for提供的解决方案基本上包括删除一些文件。更多投票答案建议主要如下:
- 采空GlassFish服务器
- 删除了所有内容从glassfishhome/GlassFish中/域/ yourdomainname /生成
- 开始Glassfish的
我已经安装“GlassFish服务器4.1.1”,这不起作用。
更多投票第二个答案暗示基本上如下:
1,所有多数民众赞成需要解决这个问题的就是删除在$ GLASSFISH_HOME/GlassFish中/域整个OSGi的缓存// OSGi的缓存
这也不起作用。
我能做些什么?任何帮助将是非常赞赏
最好的问候,
拉斐尔·科斯塔
我认为定时器非常重要,可能很多人都有同样的问题,他们不知道如何解决它。 –
你为什么这么认为?首先,您应该先正确标记您的问题。在你发布的代码中你看到'jsf'?我建议标记它'ejb'并且它看起来非常强烈GlassFish相关,所以添加该标签(并删除jsf标签) – Kukeltje
@Kukeltje非常感谢。 –