Author Message
ShawnPeddie2
Joined: Jan 8, 2014
Messages: 14
Offline
Hi

I am getting a database error when I validate an application deployed to Tomcat 8.5.15.

The JDBC driver (sqljdbc42.jar) is detected but when I verify a datasource I get the following:

java.sql.SQLException: Must set the ConnectionPoolDataSource through setDataSourceName or setConnectionPoolDataSource before calling getConnection.
org.apache.tomcat.dbcp.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:900)
com.avaya.sce.runtime.jdbc.Database.open(Database.java:93)
org.apache.jsp.jsp.validate_002ddb_jsp._jspService(validate_002ddb_jsp.java:714)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:748)

WilsonYu
Joined: Nov 6, 2013
Messages: 3950
Offline
This old post has a similar error and got resolved by the user. Sounds like Tomcat couldn't find the data source which is defined in the context.xml in the app. This file would be copied to the config/catalina/localhost directory as the <appname>.xml if the host's copyXml attribute is set to true in the config/server.xml (per Tomcat doc https://tomcat.apache.org/tomcat-8.5-doc/config/context.html)

https://www.devconnectprogram.com/forums/posts/list/21080.page
ShawnPeddie2
Joined: Jan 8, 2014
Messages: 14
Offline
Good Morning Wilson

I added copyXML="true" and deployXML="true" to the server.xml on the tomcat server and restarted but I am still unable to validate the database connection. Any other thoughts?
ShawnPeddie2
Joined: Jan 8, 2014
Messages: 14
Offline
I think I see an issue with tomcat...the validation is worded a bit odd:

Warning could not find class org.apache.tomcat.dbcp.dbcp.PoolableConnection
from file naming-factory-dbcp.jar;tomcat-dbcp.jar
Database connectivity will not work
See http://jakarta.apache.org/commons/dbcp/

I checked the tomcat lib folder and I do not see naming-factory-dbcp.jar. Where can I get that from
WilsonYu
Joined: Nov 6, 2013
Messages: 3950
Offline
These warning messages are for earlier versions of Tomcat. Tomcat 8.5 or later comes with a file named tomcat-dbcp.jar instead that has the connection pooling implementation.
ShawnPeddie2
Joined: Jan 8, 2014
Messages: 14
Offline
Thanks Wilson

It ended up being something corrupt in my OD installation. I did a clean install and the issue went away.
Go to:   
Mobile view