2017-03-22 2 views
0

Jboss 5.1에서 Jboss EAP 7.0.0으로 서비스를 마이그레이션 중입니다. maven 3.9.9를 사용하여 jdk 1.8을 성공적으로 빌드하고 jboss EAP 7.0.0에 성공적으로 배포했습니다.Jboss EAP 7.0.0 - java.lang.ClassNotFoundException : org.jboss.naming.remote.client.InitialContextFactory

배포하는 동안 java.lang.ClassNotFoundException이 표시됩니다. 이 서비스에는 원격 ejb가없는 로컬 ejb 만 포함됩니다.

EJB 조회 클래스 -

 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"); 

스택 추적 - 당신은 JBossAS 모든 버전의 로컬 객체를 찾을 때 new InitialContext()에 환경 특성을 제공하는 데 필요한 적이없는

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) 
+0

http://stackoverflow.com/questions/36441217/wflynam0027-classnotfoundexception-org-jboss-naming-remote-client-initialcont – gladiator

답변

1

또는 와일드 플라이.

Context ctx = new InitialContext(); 
ejb = (ISystemConfigurationTimerLocal) ctx.lookup(ejbLocalJndi); 

이 모두 필요합니다.

FWIW는 제공 한 속성 구성이 원격 독립 실행 형 클라이언트를위한 것이며 서버 -> 서버 호출의 경우에도 올바르지 않습니다.

+0

새로운 InitialContext()에서 환경 속성을 제거해 주셔서 감사합니다. –

관련 문제