EJB @Startup dependendo de EJB de outro projeto

0 respostas
java
D

Pessoal,

tenho uma classe com @Startup que agenda a execução de um serviço com EJB TimerService.
Acontece que esse agendamento depende de um EJB de outro projeto para buscar as configurações de horário de execução.
Quando mando subir o servidor, se o EJB do outro projeto ainda não estiver rodando, vai ocorrer erro, pois não vai conseguir injetar esse EJB.
Tentei resolver isso utilizando @DependsOn, mas pelo que li, ele só funciona quando o EJB também for um singleton, o que não é o caso.

Alguma sugestão de como eu posso resolver isso? Algo como o DependsOn, que diz que a minha classe só deve ser rodada quando alguma dependência for satisfeita.

Se ajudar, segue abaixo exemplo de código:

@Startup
@Singleton
public class ProcessamentoEnviarEmail {

private ConfiguracaoPortalServiceRemote configuracaoPortalService;

@Resource
private TimerService timerService;

@PostConstruct

public void processamentoArquivoScheduler(){

this.agendar();

}
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)

@Timeout

public void handleTimer(final Timer timer) {
// executa agendamento

}

public void agendar() {

// EJB externo para buscar a configuração do agendamento
  configPortal = getConfiguracaoPortalService().getParametroByChave("XXXXXXX");
  
  .
  .
  .
  .

}

public ConfiguracaoPortalServiceRemote getConfiguracaoPortalService() {
EJBUtil ejbUtil = new EJBUtil(“GerenciadorServiceEAR”, “GerenciadorService”);

if (configuracaoPortalService == null) {
  	try {
  		configuracaoPortalService = ejbUtil.lookup("ConfiguracaoPortalServiceBean");
  	} catch (br.com.meta.commons.exception.SystemException e) {
  		e.printStackTrace();
  	}
  }
  return configuracaoPortalService;

}
}

Criado 19 de abril de 2016
Respostas 0
Participantes 1