我正在尝试将 ear 文件从 JBoss 5.1 EAP 移动到 6.1。当我尝试使用 EJB 时遇到了这个问题:
NamingException JBAS011843: Failed instantiate InitialContextFactory com.sun.jndi.cosnaming.CNCtxFactory from classloader ModuleClassLoader for Module "deployment.my.ear.my.war:main" from Service Module Loader
13:34:14,304 INFO [stdout] javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory com.sun.jndi.cosnaming.CNCtxFactory from classloader ModuleClassLoader for Module "deployment.my.ear.my.war:main" from Service Module Loader
13:34:14,304 INFO [stdout] at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
13:34:14,304 INFO [stdout] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681)
13:34:14,305 INFO [stdout]
此错误来自的代码是:
new InitialContext("{java.naming.provider.url=corbaloc::server:port, java.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory}");
这在 JBoss 5.1 上运行良好,但在 6.1 上运行良好。我检查并发现该类存在于 6.1 上,不知道为什么会出现此错误。
编辑:另外,这是从 JDK 6 迁移到 JDK 7。