WebLogic Server 10.3.6数据源配置连接异常求助
问题:WebLogic 10.3.6数据源配置及Eclipse服务器添加报错
- 已安装Oracle WebLogic Server 10.3.6并配置数据源,Eclipse添加服务器时出现报错(截图1)
- 删除数据源重新配置后,WebLogic管理控制台测试连接仍失败(截图2),数据库凭据确认无误
- 已尝试删除并重新配置数据源,问题未解决
Eclipse报错信息
javax.naming.NameNotFoundException: While trying to lookup 'jdbc.OracleDS' didn't find subcontext 'jdbc'. Resolved ''; remaining name 'jdbc/OracleDS' at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139) at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:247) at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182) at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206) at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:412) at javax.naming.InitialContext.lookup(InitialContext.java:392) at com.ehis.eslp.ServiceLocator.getDataSource(ServiceLocator.java:180) at com.ehis.eslp.ServiceLocator.getConnection(ServiceLocator.java:388) at webbeans.eCommon.ConnectionManager.getConnection(ConnectionManager.java:83) at eMR.smrp.GeneratePD102$JobSchedulePD102.main(GeneratePD102.java:890) at eMR.smrp.GeneratePD102.init(GeneratePD102.java:35) at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64) at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58) at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48) at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:539) at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1981) at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1955) at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1874) at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3154) at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:484) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119) at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200) at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247) at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
WebLogic管理控制台报错信息
Connection test failed. Message icon - Error Could not establish a connection because of java.lang.NullPointerException<br/>weblogic.jdbc.common.internal.DataSourceUtil.testConnection(DataSourceUtil.java:350)<br/>com.bea.console.utils.jdbc.JDBCUtils.testConnection(JDBCUtils.java:734)<br/>com.bea.console.actions.jdbc.datasources.createjdbcdatasource.CreateJDBCDataSource.testConnectionConfiguration(CreateJDBCDataSource.java:474)<br/>sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br/>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br/>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br/>java.lang.reflect.Method.invoke(Method.java:597)<br/>org.apache.beehive.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:870)<br/>org.apache.beehive.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:809)<br/>org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:478)<br/>org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:306)<br/>org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:336)<br/>org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:52)<br/>org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)<br/>org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:97)<br/>org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:2044)<br/>org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:64)<br/>org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor.wrapAction(ActionInterceptor.java:184)<br/>org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.invoke(ActionInterceptors.java:50)<br/>org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:58)<br/>...
解决方案
1. 检查并创建JDBC子上下文
- 登录WebLogic管理控制台,进入域名 -> 服务 -> JNDI树,确认是否存在
jdbc子节点 - 若不存在,重新创建数据源:
- 进入域名 -> 服务 -> 数据源 -> 通用数据源,点击新建 -> Generic Data Source
- 配置时确保JNDI名称前缀为
jdbc/(如jdbc/OracleDS) - 保存并激活更改后,重启WebLogic服务器,刷新JNDI树确认
jdbc节点生成
2. 修复数据源空指针问题
空指针多由配置项缺失或无效导致:
- 确认数据库驱动类名为
oracle.jdbc.OracleDriver,且ojdbc6.jar已放置在WL_HOME/server/lib目录(WebLogic 10.3.6适配JDK 6,对应ojdbc6) - 检查数据库URL格式:
jdbc:oracle:thin:@<主机IP>:<端口>:<SID>或jdbc:oracle:thin:@//<主机IP>:<端口>/<服务名> - 验证连接池参数(初始连接数、最大连接数等)无非法值,保存配置后重新测试连接
3. 同步Eclipse服务器配置
- 删除Eclipse中现有WebLogic服务器实例:进入Window -> Show View -> Servers,右键删除
- 重新添加服务器:选择对应版本的WebLogic,指向正确安装目录,勾选自动发布选项
- 确认项目中数据源引用的JNDI名称与WebLogic配置完全一致(
jdbc/OracleDS)
4. 验证驱动包完整性
- 检查
WL_HOME/server/lib下是否存在正确版本的Oracle JDBC驱动,缺失则下载对应版本放入目录后重启WebLogic - 避免项目中重复引入驱动包,防止类加载冲突
内容的提问来源于stack exchange,提问作者Marwan Emad
相关产品推荐
相关产品推荐

