Reputation: 2153
I am migrating a service from Jboss 5.1 to Jboss EAP 7.0.0. It is successfully build in jdk 1.8 using maven 3.9.9 and successfully deployed in jboss EAP 7.0.0.
During deployment it is showing java.lang.ClassNotFoundException
. This service contains only local ejb no remote ejbs.
EJb lookup class -
String contextFactory = SysConfigUtil.getJndiFactory();
String ejbLocalJndi = SysConfigUtil.getTimerEjbLocalJndi();
Properties environment = new Properties();
environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
Context ctx;
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
environment.put("jboss.naming.client.ejb.context", new Boolean(true));
ctx = new InitialContext(environment);
logger.info("************ before lookup");
ejb = (ISystemConfigurationTimerLocal) ctx.lookup(ejbLocalJndi);
logger.info("************ after lookup");
Stack Trace -
javax.naming.NamingException: WFLYNAM0027: Failed instantiate InitialContextFactory org.jboss.naming.remote.client.InitialContextFactory from classloader ModuleClassLoader f
or Module "deployment.SystemConfiguration.ear.system-configuration-lifecycle.sar:main" from Service Module Loader [Root exception is java.lang.ClassNotFoundException: org.jb
oss.naming.remote.client.InitialContextFactory from [Module "deployment.SystemConfiguration.ear.system-configuration-lifecycle.sar:main" from Service Module Loader]]
org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:118)
org.jboss.as.naming.InitialContext.init(InitialContext.java:99)
javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
org.jboss.as.naming.InitialContext.<init>(InitialContext.java:89)
org.jboss.as.naming.InitialContextFactory.getInitialContext(InitialContextFactory.java:43)
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
javax.naming.InitialContext.init(InitialContext.java:244)
javax.naming.InitialContext.<init>(InitialContext.java:216)
com.abcd.services.core.systemconfiguration.conn.impl.SystemConfigurationTimerEjbExecutor.getSystemConfigurationTimerEJB(SystemConfigurationTimerEjbExecutor.java:96)
com.abcd.services.core.systemconfiguration.conn.impl.SystemConfigurationTimerEjbExecutor.startScheduler(SystemConfigurationTimerEjbExecutor.java:56)
com.abcd.services.core.systemconfiguration.conn.impl.SystemConfigurationAppLifeCycle.start(SystemConfigurationAppLifeCycle.java:65)
org.jboss.as.service.AbstractService.invokeLifecycleMethod(AbstractService.java:76)
org.jboss.as.service.StartStopService$1.run(StartStopService.java:61)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory from [Module "deployment.SystemConfiguration.ear.system-configuration-lifec
ycle.sar:main" from Service Module Loader]
org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:113)
Upvotes: 0
Views: 1590
Reputation: 19445
You have never needed to provide environment properties to new InitialContext()
when looking up local objects in any version of JBossAS or WildFly.
Context ctx = new InitialContext();
ejb = (ISystemConfigurationTimerLocal) ctx.lookup(ejbLocalJndi);
should be all that you need.
FWIW, the property configuration that you provided is for remote standalone clients, and is incorrect even for server -> server calls.
Upvotes: 1