@Schedule não está injetando EJB

Olá para todos.

O que estou fazendo é: Preciso que um determinado método seja executado a cada 3 minutos, como é sempre o mesmo tempo para o mesmo método, ao invés de usar o quartz, optei por experimentar o @Schedule. Nos primeiros testes funcionou perfeitamente, até que precisei usar um EJB, localizado em outro projeto, o que funciona perfeitamente em vários outros projetos, é um EJB com vários utilitários, vou colocar o exemplo:

minha classe de log:

[code]package com.ejb.utils;

@Stateless
public class LogBean implements LogRemote { // => minha interface remota

public void log(LogParameters params) {
doTheLogginThings();
}

}[/code]

meu EJB onde uso o @Schedule:

[code]package com.batch.jobs;

@Stateless
public class MyBatchJobsBean implements MyBatchJobsRemote { // => minha interface remota

@PersistenceContext
private EntityManager em;

@EJB( lookup = LogRemote.JNDI_NAME )
private LogRemote log;

private someDAO dao;

@PostConstruct
private void init(){
dao = new someDAO(em);
}

@Schedule( minute = "*/3", dayOfWeek = "Mon , Tue , Wed , Thu , Fri", hour = "7,8,9,10,11,12,13,14,15,16,17,18,19,20" )
private void executeBatchJob() {
executeSomeJob();
log.log("Log this things");
}

}
[/code]

se eu não fizer nenhuma referência ao EJB LogRemote, funciona perfeitamente sem nenhum problema, inclusive o PersistenceContext injeta normalmente. mas usando o LogRemote , dá o erro:
java.lang.IllegalStateException: JBAS011048: Failed to construct component instance

obviamente, sem o Log funciona normalmente e esse mesmo Log é usado em vários outros lugares sem qualquer problema. Já fiz o teste de usar ao invés de @Stateless, o @Singleton apenas por desencargo de consciência e não mudou em absolutamente nada, o erro é o mesmo.

Cara, tenta colocar só @EJB

O problema pode ser em como ele está fazendo o lookup

@EJB( lookup = LogRemote.JNDI_NAME )  
private LogRemote log;  
  

O meu esta assim e funciona legal.

package br.com.session.comercial;
import br.com.ejb.BasicSessionBean;
import br.com.entidades.comercial.PedidoVendas;
import br.com.entidades.comercial.RankingVendas;
import br.com.entidades.tipos.SituacaoPedido;
import java.util.List;
import javax.ejb.*;

@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class PedidoVendasSession extends BasicSessionBean {
        
    //executa de 1 em 1 minuto
    @Schedule(minute="1", hour="*")
    public void exportaPedidoVendas() {
	try
	{
	    FileWriter writer = new FileWriter("c:\\teste.csv");
            
            List<PedidoVendas> listaPedidos = getAllPedidoVendasBloqueados(3, SituacaoPedido.Bloqueado);
 
            for (PedidoVendas pedidoVendas : listaPedidos) {
                pedidoVendas.getNrpedido();      
            
            
	    writer.append(pedidoVendas.getNrpedido().toString());
	    writer.append(',');
	    writer.append(pedidoVendas.getCliente().getNomefantasia());
	    writer.append('\n');
            }
 
	    //generate whatever data you want
 
	    writer.flush();
	    writer.close();
	}
	catch(IOException e)
	{
	     e.printStackTrace();
	}  
    } 
    
}

Abraço.