java tomcat上下文异常与jdbc池
我有一个使用Tomcat服务器部署的web应用,我有一个例外
名称jdbc/_UserRight与上下文无关
这就是我的背景:
<Resource name="jdbc/_UserRight" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="XXXXX" password="XXXXX" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/userright" />
这是我的连接类:
public class ConnectionUserRight {
private Connection cnx;
private ConnectionPool connectionPool;
public ConnectionUserRight() throws ConfigFileReaderException, IOException,
SQLException {
connectionPool = new ConnectionPool();
}
public Connection getCnx() throws SQLException, NamingException {
if (null == this.cnx) {
this.cnx = connectionPool.getConnection("jdbc/_UserRight");
} else {
// Connexion already open
}
return cnx;
}
public void closeCnx() {
connectionPool.closeConnection(this.cnx);
this.cnx = null;
}
}
编辑:
这是我的日志(第一行例外是法语):
javax。命名。NameNotFoundException:Le Nom jdbc/_userrightn'est pas liéce Contexte 在org。阿帕奇。命名。NamingContext。查找(NamingContext.java:820) 在org。阿帕奇。命名。NamingContext。查找(NamingContext.java:168) 在org。阿帕奇。命名。选择或上下文。查找(SelectorContext.java:158) 在javax。命名。初始化上下文。查找(InitialContext.java:411) 在洛杉矶神父。联系ConnectionPoolSQL。getConnection(ConnectionPoolSQL.java:30) 在洛杉矶神父。jproductbase。刀。连接池。getConnection(ConnectionPool.java:67) 在洛杉矶神父。朱塞利特。刀。是的。getCnx(ConnectionUserRight.java:23) 在洛杉矶神父。朱塞利特。刀。UserDAO。readAll(UserDAO.java:74) 在洛杉矶神父。朱塞利特。服务用户模块。getAllUser(UserModule.java:31) 在洛杉矶神父。朱塞利特。服务ServiceUserRight。getAllUser(ServiceUserRight.java:281) 在洛杉矶神父。朱塞利特。managedbean。阿泰伯安。refreshuserList(利用Turbean.java:53) 在洛杉矶神父。朱塞利特。managedbean。阿泰伯安。(java:49) 在太阳下。反映国家结构附件MPL。newInstance0(本机方法) 在太阳下。反映国家结构附件MPL。newInstance(NativeConstructorAccessorImpl.java:57) 在太阳下。反映删除构造函数或AccessorImpl。newInstance(DelegatingConstructorAccessorImpl.java:45) 在爪哇。朗。反思。构造器。newInstance(Constructor.java:525) 在爪哇。朗朗,上课。newInstance0(Class.java:372) 在爪哇。朗朗,上课。newInstance(Class.java:325) 在com。太阳面孔。mgbean。造豆工。newBeanInstance(BeanBuilder.java:188) 在com。太阳面孔。mgbean。造豆工。构建(BeanBuilder.java:102) 在com。太阳面孔。mgbean。豆管员。createAndPush(BeanManager.java:409) 在com。太阳面孔。mgbean。豆管员。创建(BeanManager.java:269) 在com。太阳面孔。埃尔。ManagedBeanELResolver。resolveBean(ManagedBeanELResolver.java:244) 在com。太阳面孔。埃尔。ManagedBeanELResolver。getValue(ManagedBeanELResolver.java:116) 在com。太阳面孔。埃尔。解复合解算器_getValue(DemuxCompositeELResolver.java:176) 在com。太阳面孔。埃尔。解复合解算器。getValue(DemuxCompositeELResolver.java:203) 在org。阿帕奇。埃尔。解析器。验光器。getValue(astiIdentifier.java:72) 在org。阿帕奇。埃尔。解析器。价值观。getTarget(AstValue.java:94) 在org。阿帕奇。埃尔。解析器。价值观。getType(AstValue.java:82) 在org。阿帕奇。埃尔。ValueExpressionImpl。getType(ValueExpressionImpl.java:172) 在com。太阳面孔。小脸蛋。埃尔。TagValueExpression。getType(TagValueExpression.java:98) 在org。素面。组成部分数据表。数据表。isLazy(DataTable.java:968) 在org。素面。组成部分数据表。DataTableRenderer。encodeMarkup(DataTableRenderer.java:191) 在org。素面。组成部分数据表。DataTableRenderer。encodeEnd(DataTableRenderer.java:108) 在javax。面孔。组成部分UIComponentBase。encodeEnd(UIComponentBase.java:875) 在javax。面孔。组成部分UIC组件。encodeAll(UIComponent.java:1764) 在javax。面孔。提供渲染器。encodechildrender(Renderer.java:168) 在javax。面孔。组成部分UIComponentBase。encodeChildren(UIComponentBase.java:845) 在org。素面。renderkit。核心渲染器。renderChild(CoreRenderer.java:57) 在org。素面。renderkit。核心渲染器。renderChildren(CoreRenderer.java:45) 在org。素面。组成部分布局布局单元渲染器。encodeEnd(LayoutUnitRenderer.java:51) 在javax。面孔。组成部分UIComponentBase。encodeEnd(UIComponentBase.java:875) 在javax。面孔。组成部分UIC组件。encodeAll(UIComponent.java:1764) 在javax。面孔。组成部分UIC组件。encodeAll(UIComponent.java:1760) 在javax。面孔。组成部分UIC组件。encodeAll(UIComponent.java:1760) 在javax。面孔。有限公司重要的。UIC组件。encodeAll(UIComponent.java:1760) 在javax。面孔。组成部分UIC组件。encodeAll(UIComponent.java:1760) 在com。太阳面孔。应用看法FaceletViewHandlingStrategy。renderView(FaceletViewHandlingStrategy.java:402) 在com。太阳面孔。应用看法多视图处理程序。renderView(MultiViewHandler.java:131) 在com。太阳面孔。生命周期。渲染响应阶段。执行(RenderResponsePhase.java:121) 在com。太阳面孔。生命周期。阶段doPhase(Phase.java:101) 在com。太阳面孔。生命周期。生命周期。render(LifecycleImpl.java:139) 在javax。面孔。网络应用。FacesServlet。服务(FacesServlet.java:594) 在org。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。internalDoFilter(ApplicationFilterChain.java:305) 在org。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。doFilter(ApplicationFilterChain.java:210) 在org。阿帕奇。卡塔琳娜。果心标准包装阀。调用(StandardWrapperValve.java:222) 在org。阿帕奇。卡塔琳娜。果心标准连接阀。调用(StandardContextValve.java:123) 在org。阿帕奇。卡塔琳娜。验证者。AuthenticatorBase。调用(AuthenticatorBase.java:472) 在org。阿帕奇。卡塔琳娜。果心标准阀门。调用(StandardHostValve.java:171) 在org。阿帕奇。卡塔琳娜。阀门。错误报告阀。调用(ErrorReportValve.java:99) 在org。阿帕奇。卡塔琳娜。阀门。检修阀。调用(AccessLogValve.java:936) 在org。阿帕奇。卡塔琳娜。果心标准引擎版本。调用(StandardEngineValve.java:118) 在org。阿帕奇。卡塔琳娜。连接器。郊狼适应者。服务(CoyoteAdapter.java:407) 在org。阿帕奇。郊狼。http11。抽象http11处理器。进程(AbstractHttp11Processor.java:1004) 在org。阿帕奇。郊狼。AbstractProtocol$AbstractConnectionHandler。进程(AbstractProtocol.java:589) 在org。阿帕奇。公猫util。网JIoEndpoint$SocketProcessor。run(JIoEndpoint.java:310) 在爪哇。util。同时发生的线程池执行器。runWorker(ThreadPoolExecutor.java:1110) 在爪哇。util。同时发生的线程池执行器$Worker。运行(ThreadPoolExecutor.java:603) 在爪哇。朗。丝线。运行(Thread.java:722)
# 1 楼答案
看起来您的连接池只是在没有上下文的情况下创建的。试着做些类似-
# 2 楼答案
我解决了它: