不能通过jndi访问WAS数据源的问题

碰到一个比较棘手的问题,在WAS上部署一个spring应用程序,spring中配置通过jndi的方式连接数据库。起初应用能正常访问数据源,后面重新部署过应用,在初始化数据源时开始报错:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is javax.naming.NoInitialContextException: Cannot instantiate class: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
        at java.security.AccessController.doPrivileged(AccessController.java:214)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
        at com.ibm.ws.wswebcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:653)
        at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:370)
        at com.ibm.ws.wswebcontainer.webapp.WebApp.initialize(WebApp.java:293)
        at com.ibm.ws.wswebcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:93)
        at com.ibm.ws.wswebcontainer.VirtualHost.addWebApplication(VirtualHost.java:162)
        at com.ibm.ws.wswebcontainer.WebContainer.addWebApp(WebContainer.java:673)
        at com.ibm.ws.wswebcontainer.WebContainer.addWebApplication(WebContainer.java:626)
        at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:335)
        at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:551)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1250)
        at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1140)
        at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:569)
        at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:819)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2100)
        at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342)
        ... 1 more
Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory]
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:669)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:259)
        at javax.naming.InitialContext.init(InitialContext.java:235)
        at javax.naming.InitialContext.(InitialContext.java:209)
        at org.springframework.jndi.JndiTemplate.createInitialContext(JndiTemplate.java:137)
        at org.springframework.jndi.JndiTemplate.getContext(JndiTemplate.java:104)
        at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:86)
        at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:153)
        at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
        at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
        at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
        at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:200)
        at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:186)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
        ... 32 more
Caused by: java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory
        at java.lang.Class.forNameImpl(Native Method)
        at java.lang.Class.forName(Class.java:163)
        at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:57)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:666)
        ... 46 more
后来即使删掉应用重启WAS也会报错
12/9/10 9:01:32:895 CST] 00000016 EJBContainerI E   WSVR0067E: EJB container caught javax.naming.NoInitialContextException: Cannot instantiate class: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory]
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:669)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:259)
        at javax.naming.InitialContext.init(InitialContext.java:235)
        at javax.naming.InitialContext.(InitialContext.java:187)
        at com.ibm.ws.runtime.component.EJBContainerImpl.remoteLazyBind(EJBContainerImpl.java:4381)
        at com.ibm.ws.runtime.component.EJBContainerImpl.install(EJBContainerImpl.java:2960)
        at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3730)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1250)
        at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1140)
        at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:569)
        at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:819)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2100)
        at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
Caused by: java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory
        at java.lang.Class.forNameImpl(Native Method)
        at java.lang.Class.forName(Class.java:163)
        at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:57)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:666)
        ... 14 more
and is throwing com.ibm.ejs.container.ContainerException: Failed to create and bind IOR for EJB - caught Throwable; nested exception is:
        javax.naming.NoInitialContextException: Cannot instantiate class: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory]
        at com.ibm.ws.runtime.component.EJBContainerImpl.remoteLazyBind(EJBContainerImpl.java:4429)
        at com.ibm.ws.runtime.component.EJBContainerImpl.install(EJBContainerImpl.java:2960)
        at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3730)
        at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1250)
        at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1140)
        at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:569)
。。。。。。。。。。。。。。。。。。。。。。。
Caused by: java.lang.ClassNotFoundException: org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory
        at java.lang.Class.forNameImpl(Native Method)
        at java.lang.Class.forName(Class.java:163)
        at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:57)
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:666)
        ... 14 more
我尝试过重启WAS、更新应用都不奏效
参与4

3同行回答

YuLiminYuLimin资深技术顾问IBM广州
1. 删除所有应用中的jta.jar这一步很关键:)显示全部
1. 删除所有应用中的jta.jar
这一步很关键:)收起
互联网服务 · 2010-12-31
浏览688
xuebinemailxuebinemail项目经理北京某股份有限公司
重新部署了应用,看来很是奇怪啊。显示全部
重新部署了应用,看来很是奇怪啊。收起
系统集成 · 2010-12-15
浏览645
wky0711wky0711软件工程师武汉同来科技有限公司
这个问题已解决了1. 删除所有应用中的jta.jar2. 在WAS中卸载所有应用3. 重启WAS4. 重新部署应用希望以后有人碰到这个问题时能在google中搜到Me显示全部
这个问题已解决了
1. 删除所有应用中的jta.jar
2. 在WAS中卸载所有应用
3. 重启WAS
4. 重新部署应用
希望以后有人碰到这个问题时能在google中搜到Me收起
2010-12-09
浏览582

提问者

wky0711
软件工程师武汉同来科技有限公司

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2010-12-09
  • 关注会员:0 人
  • 问题浏览:4438
  • 最近回答:2010-12-31
  • X社区推广