ejb injection problem
sbutt Mar 26, 2014 1:05 PMHi All,
I am trying to inject a locat stateless bean into another bean. Both beans are in different packages/jars.
Both the beans get deployed fine, but when i enable the injection of bean 1 in my bean 2, i get the following error:
DEPLOYMENTS IN ERROR: Deployment "startup-singleton-initiator:topLevelUnit=com.abc.integra.ams2.kernel.war,unit=com.traveltainment.integra.ams2.kernel.war,bean=AutoScheduler" is in error due to the following reason(s): javax.naming.NameNotFoundException: CacheLoaderBean not bound
Bean 1:
@Stateless(name="CacheLoaderBean/local")
@Local(CacheLoader.class)
public class CacheLoaderBean implements CacheLoader
{
private Log log = LogFactory.getLog(this.getClass());
..
..
public void loadPersistenceUnitsToCache()
{
String persistenceUnits = configService.getProperty("AvailablePersistenceUnits");
log.info("reloading persistence units: " + persistenceUnits);
Interface
@Local
public interface CacheLoader
{
public void loadPersistenceUnitsToCache();
}
Bean 2:
@Startup
@Singleton
public class AutoScheduler {
@EJB(mappedName = "CacheLoaderBean/Local")
CacheLoader cacheLoader;
private Log log = LogFactory.getLog(this.getClass());
private InitialContext initialContext;
/**
* This method will be invoked every day at 5:00:00 in the morning
* @param timer The timer instance
*/
//@Schedule (second = "*/10" , minute = "*", hour = "*", persistent=false)
@Schedule(persistent = false, second = "12", minute = "*", hour = "*", info = "evictProfiles")
private void executeEveryDayAtFive(Timer timer) throws Exception
{
cacheLoader.loadPersistenceUnitsToCache();
// do some task here.
log.info("Auto-timer method invoked at " + new Date() + " for Cache scheduler bean " + this.getClass().getSimpleName());
System.out.println("/ " + new Date() + " for bean " + this.getClass().getSimpleName());
}
}
In my above bean 2, when i enable the injection of CacheLoaderBean, i get the error mentioned above.
Could someone please tell me how to handle this bean injection so then I can finally manage to call the method "cacheLoader.loadPersistenceUnitsToCache();" of the injected bean?
Thanks. log.info("Auto-timer method invoked at " +