У меня есть следующий код:EJB Timer Service не доступен, свёртывании Сбой связи
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 Timer Service не доступен».
Для решения этой проблемы я следовали за этими шагами:
- Доступ к glash рыбы консоли администратора (http://localhost:4848)
- Перейдите в Конфигурации ->сервера конфигурации ->Контейнер EJB
- Выберите вкладку Служба таймера EJB
- Затем заполните Timer Datasource: с ресурса JDBC (я использовал "JDBC/projecto_final")
- Restart сервер
Как было предложено в 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, состоят в основном в удалении некоторых файлов. Ответ более голосовала предлагает в основном следующие:
- Stoped сервер GlassFish,
- удалил все содержимое из glassfishhome/GlassFish/домены/имя_домена/генерируемый
- Начало Glassfish
Я установил «GlassFish Server 4.1.1», и это не работает.
Второй ответ более голосовала предлагает в основном следующие:
1.Все, что нужно, чтобы исправить эту проблему удалить весь кэш OSGi под $ GLASSFISH_HOME/GlassFish/доменов // OSGi-кэш
Это также не работает.
Что я могу сделать?Любая помощь будет очень признателен
С наилучшими пожеланиями,
Рафаэль Коста
Я думаю, что таймеры очень важны, вероятно, у многих людей есть одна и та же проблема, и они не знают, как ее решить. –
Почему вы так думаете? Прежде всего, вы должны начать правильно пометить свой вопрос. Где в коде, который вы опубликовали, вы видите «jsf»? Я бы предложил пометить его «ejb». И это очень сильно связано с GlassFish, поэтому добавьте этот тег в (и удалите ярлык jsf). – Kukeltje
@Kukeltje Большое спасибо. –