You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Hua, Gary - Saint Louis, MO - Contractor" <Ga...@usps.gov.INVALID> on 2019/03/25 16:08:52 UTC
RE: [EXTERNAL] Re: Could not find datasource:
java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
Olaf:
Thanks for the input. I removed jdbc2_0-stdext.jar and tomcat-dbcp.jar from /opt/TomCat/apache-tomcat-9.0.13/webapps/TOPS-WEB/WEB-INF/lib and did some cleaning on /opt/TomCat/apache-tomcat-9.0.13/lib, now that is my lib folder looks like:
atadmin@eagnmnmed1f45:/opt/TomCat/apache-tomcat-9.0.13/webapps/TOPS-WEB/WEB-INF/lib>ls -l
total 20648
-rwxrwxrwx 1 atadmin atadmin 433164 Dec 17 17:47 antlr-2.7.5H3.jar
-rwxrwxrwx 1 atadmin atadmin 16777 Dec 17 17:45 asm-attrs.jar
-rwxrwxrwx 1 atadmin atadmin 26360 Dec 17 17:45 asm.jar
-rwxrwxrwx 1 atadmin atadmin 281998 Dec 17 17:45 cglib-2.1.jar
-rwxrwxrwx 1 atadmin atadmin 1196109 Dec 17 17:47 classes12.jar
-rwxrwxrwx 1 atadmin atadmin 4604132 Dec 17 17:45 com.ibm.ws.webcontainer.jar
-rwxrwxrwx 1 atadmin atadmin 188671 Dec 17 17:47 commons-beanutils.jar
-rwxrwxrwx 1 atadmin atadmin 165119 Dec 17 17:45 commons-collections.jar
-rwxrwxrwx 1 atadmin atadmin 205318 Mar 19 11:20 commons-dbcp2-2.6.0.jar
-rwxrwxrwx 1 atadmin atadmin 168446 Dec 17 17:47 commons-digester.jar
-rwxrwxrwx 1 atadmin atadmin 70604 Dec 17 17:45 commons-fileupload-1.3.3.jar
-rwxrwxrwx 1 atadmin atadmin 214788 Dec 17 17:45 commons-io-2.6.jar
-rwxrwxrwx 1 atadmin atadmin 207723 Dec 17 17:47 commons-lang-2.1.jar
-rwxrwxrwx 1 atadmin atadmin 315805 Dec 17 17:47 commons-lang3-3.1.jar
-rwxrwxrwx 1 atadmin atadmin 26388 Dec 17 17:47 commons-logging.jar
-rwxrwxrwx 1 atadmin atadmin 84462 Dec 17 17:47 commons-validator.jar
-rwxrwxrwx 1 atadmin atadmin 210432 Dec 17 17:45 displaytag-1.1.jar
-rwxrwxrwx 1 atadmin atadmin 12590 Dec 17 17:45 displaytag-export-poi-1.1.jar
-rwxrwxrwx 1 atadmin atadmin 312509 Dec 17 17:45 dom4j-1.5.2.jar
-rwxrwxrwx 1 atadmin atadmin 47531 Dec 17 17:45 ehcache-1.1.jar
-rwxrwxrwx 1 atadmin atadmin 1925498 Dec 17 17:45 hibernate3.jar
-rwxrwxrwx 1 atadmin atadmin 65425 Dec 17 17:45 jakarta-oro.jar
-rwxrwxrwx 1 atadmin atadmin 1979523 Dec 17 17:41 javaee-api-8.0.jar
-rwxrwxrwx 1 atadmin atadmin 153115 Dec 17 17:45 jdom.jar
-rwxrwxrwx 1 atadmin atadmin 414240 Dec 17 16:29 jstl-1.2.jar
-rwxrwxrwx 1 atadmin atadmin 8812 Dec 17 17:45 jta.jar
-rwxrwxrwx 1 atadmin atadmin 367444 Dec 17 17:45 log4j.jar
-rwxrwxrwx 1 atadmin atadmin 3698857 Mar 15 15:32 ojdbc7.jar
-rwxrwxrwx 1 atadmin atadmin 105355 Dec 17 17:45 old_lcms-webtools.jar
-rwxrwxrwx 1 atadmin atadmin 795231 Dec 17 17:45 poi-2.5-final-20040302.jar
-rwxrwxrwx 1 atadmin atadmin 55210 Dec 17 17:45 poi-contrib-2.5-final-20040302.jar
-rwxrwxrwx 1 atadmin atadmin 188942 Dec 17 17:45 poi-scratchpad-2.5-final-20040302.jar
-rwxrwxrwx 1 atadmin atadmin 475943 Dec 17 17:45 proxool-0.8.3.jar
-rwxrwxrwx 1 atadmin atadmin 543706 Dec 17 17:47 struts.jar
-rwxrwxrwx 1 atadmin atadmin 495271 Dec 17 17:47 Struts-Layout.jar
-rwxrwxrwx 1 atadmin atadmin 68046 Dec 17 17:47 struts-menu-2.4.3.jar
-rwxrwxrwx 1 atadmin atadmin 39427 Dec 17 17:47 taglibs-request.jar
-rwxrwxrwx 1 atadmin atadmin 44061 Dec 17 17:45 USPS-Framework-1.0.8-alpha.jar
-rwxrwxrwx 1 atadmin atadmin 834966 Dec 17 17:45 xercesImpl.jar
atadmin@eagnmnmed1f45:/opt/TomCat/apache-tomcat-9.0.13/lib>ls -l
total 13308
-rwxrwxrwx 1 atadmin atadmin 12966 Nov 2 09:29 annotations-api.jar
-rwxrwxrwx 1 atadmin atadmin 54415 Nov 2 09:29 catalina-ant.jar
-rwxrwxrwx 1 atadmin atadmin 120721 Nov 2 09:29 catalina-ha.jar
-rwxrwxrwx 1 atadmin atadmin 1652907 Nov 15 10:49 catalina.jar
-rwxrwxrwx 1 atadmin atadmin 1653788 Nov 2 09:29 catalina.jar.20181115-1049
-rwxrwxrwx 1 atadmin atadmin 78634 Nov 2 09:29 catalina-storeconfig.jar
-rwxrwxrwx 1 atadmin atadmin 338876 Nov 2 09:29 catalina-tribes.jar
-rwxrwxrwx 1 atadmin atadmin 2769774 Nov 2 09:29 ecj-4.7.3a.jar
-rwxrwxrwx 1 atadmin atadmin 87515 Nov 2 09:29 el-api.jar
-rwxrwxrwx 1 atadmin atadmin 167490 Nov 2 09:29 jasper-el.jar
-rwxrwxrwx 1 atadmin atadmin 557374 Nov 2 09:29 jasper.jar
-rwxrwxrwx 1 atadmin atadmin 27900 Nov 2 09:29 jaspic-api.jar
-rwxrwxrwx 1 atadmin atadmin 63167 Nov 2 09:29 jsp-api.jar
-rwxrwxrwx 1 atadmin atadmin 3698857 Mar 12 17:51 ojdbc7.jar
-rwxrwxrwx 1 atadmin atadmin 282576 Nov 2 09:29 servlet-api.jar
-rwxrwxrwx 1 atadmin atadmin 11212 Nov 2 09:29 tomcat-api.jar
-rwxrwxrwx 1 atadmin atadmin 845744 Nov 2 09:29 tomcat-coyote.jar
-rwxrwxrwx 1 atadmin atadmin 307435 Mar 19 17:42 tomcat-dbcp-9.0.13.jar
-rwxrwxrwx 1 atadmin atadmin 65303 Nov 2 09:29 tomcat-i18n-es.jar
-rwxrwxrwx 1 atadmin atadmin 39235 Nov 2 09:29 tomcat-i18n-fr.jar
-rwxrwxrwx 1 atadmin atadmin 42125 Nov 2 09:29 tomcat-i18n-ja.jar
-rwxrwxrwx 1 atadmin atadmin 12166 Nov 2 09:29 tomcat-i18n-ru.jar
-rwxrwxrwx 1 atadmin atadmin 36029 Nov 2 09:29 tomcat-jni.jar
-rwxrwxrwx 1 atadmin atadmin 165171 Nov 2 09:29 tomcat-util.jar
-rwxrwxrwx 1 atadmin atadmin 208966 Nov 2 09:29 tomcat-util-scan.jar
-rwxrwxrwx 1 atadmin atadmin 230254 Nov 2 09:29 tomcat-websocket.jar
-rwxrwxrwx 1 atadmin atadmin 38022 Nov 2 09:29 websocket-api.jar
I shutdown.sh and startup.sh the server, same error occurred.
Thanks
Gary
-----Original Message-----
From: Olaf Kock [mailto:tomcat@olafkock.de]
Sent: Monday, March 25, 2019 1:56 AM
To: users@tomcat.apache.org
Subject: [EXTERNAL] Re: Could not find datasource: java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
On 25.03.19 03:41, Hua, Gary - Saint Louis, MO - Contractor wrote:
> Hi experts:
>
> After I deployed my application TOPS to Tomcat server(9.0.13) on Linux box, and started the server, I got the following error:
>
>
> 1537 [main] FATAL connection.DatasourceConnectionProvider - Could not
> find datasource: java:/comp/env/jdbc/TOPSDB
> java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp2.BasicDataSource cannot be cast to javax.sql.DataSource
> at
> org.hibernate.connection.DatasourceConnectionProvider.configure(Dataso
> urceConnectionProvider.java>
> ...
>
> I have tried to put different version of tomcat-dbcp.jar like tomcat-dbcp-7.0.47.jar/ tomcat-dbcp-8.0.23.jar/ tomcat-dbcp-9.0.13.jar into /opt/TomCat/apache-tomcat-9.0.13/lib, but not the same error occurred.
One way or another, the last sentence most likely is the most relevant information, and key to solving your problem: Whenever a Java class can't be typecast to its legitimate superclass or interface, this is a clear sign that the superclass or interface can be found twice on the classpath.
The error message only contains the class name, not the classloader, so the root cause is effectively hidden. Make sure that javax.sql.DataSource is nowhere to be found in your app's WEB-INF/lib, and only once in tomcat's lib directory.
Olaf
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
RE: [EXTERNAL] Re: Could not find datasource:
java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
Posted by "Hua, Gary - Saint Louis, MO - Contractor" <Ga...@usps.gov.INVALID>.
Chris:
I did what you suggested, that is to remove all drivers from the application's WEB-INF/lib directory and leave the one in Tomcat's lib/ directory.
Now the error "FATAL connection.DatasourceConnectionProvider - Could not find datasource: java:/comp/env/jdbc/TOPSDB " and
" java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp2.BasicDataSource cannot be cast to javax.sql.DataSource " is gone.
I am going to do more cleaning and re-arrangement to the jars.
Thanks
Gary
-----Original Message-----
From: Christopher Schultz [mailto:chris@christopherschultz.net]
Sent: Tuesday, March 26, 2019 10:43 AM
To: users@tomcat.apache.org
Subject: Re: [EXTERNAL] Re: Could not find datasource: java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Gary,
On 3/25/19 12:08, Hua, Gary - Saint Louis, MO - Contractor wrote:
> Olaf:
>
> Thanks for the input. I removed jdbc2_0-stdext.jar and
> tomcat-dbcp.jar from
> /opt/TomCat/apache-tomcat-9.0.13/webapps/TOPS-WEB/WEB-INF/lib and
> did some cleaning on /opt/TomCat/apache-tomcat-9.0.13/lib, now
> that is my lib folder looks like:
Wow, this must be a very old web application. You still have some cleaning-up to do.
> atadmin@eagnmnmed1f45:/opt/TomCat/apache-tomcat-9.0.13/webapps/TOPS-WE
B/WEB-INF/lib>ls
> -l total 20648 -rwxrwxrwx 1 atadmin atadmin 433164 Dec 17 17:47
> antlr-2.7.5H3.jar -rwxrwxrwx 1 atadmin atadmin 281998 Dec 17 17:45
> cglib-2.1.jar
Super old.
[...]
> -rwxrwxrwx 1 atadmin atadmin 16777 Dec 17 17:45 asm-attrs.jar
> -rwxrwxrwx 1 atadmin atadmin 26360 Dec 17 17:45 asm.jar
> -rwxrwxrwx 1 atadmin atadmin 188671 Dec 17 17:47
> commons-beanutils.jar -rwxrwxrwx 1 atadmin atadmin 165119 Dec 17
> 17:45
commons-collections.jar
> -rwxrwxrwx 1 atadmin atadmin 168446 Dec 17 17:47
> commons-digester.jar -rwxrwxrwx 1 atadmin atadmin 26388 Dec 17
> 17:47 commons-logging.jar -rwxrwxrwx 1 atadmin atadmin 84462 Dec
> 17 17:47 commons-validator.jar -rwxrwxrwx 1 atadmin atadmin
> 153115 Dec 17 17:45 jdom.jar -rwxrwxrwx 1 atadmin atadmin 8812
> Dec 17 17:45 jta.jar -rwxrwxrwx 1 atadmin atadmin 367444 Dec 17
> 17:45 log4j.jar
I'm always suspicious of library JAR files that have no version number. You might want to take a look at what these are and re-name them appropriately.
> -rwxrwxrwx 1 atadmin atadmin 1196109 Dec 17 17:47 classes12.jar
classes12.jar is Oracle's JDBC driver written for Java 1.2. I'm fairly sure that was hand-coded by Hammurabi himself. If you are indeed using Oracle DB, you need to upgrade to a library version released during this century.
> -rwxrwxrwx 1 atadmin atadmin 3698857 Mar 15 15:32 ojdbc7.jar
This is a second Oracle JDBC driver. Do you need both of them?
> -rwxrwxrwx 1 atadmin atadmin 4604132 Dec 17 17:45
> com.ibm.ws.webcontainer.jar
This is a WebSphere library. Presumably, you have left WebSphere behind in favor of Tomcat? Or maybe you need some service that WS provides and you have taken it with you?
> -rwxrwxrwx 1 atadmin atadmin 205318 Mar 19 11:20
> commons-dbcp2-2.6.0.jar -rwxrwxrwx 1 atadmin atadmin 70604 Dec 17
> 17:45 commons-fileupload-1.3.3.jar -rwxrwxrwx 1 atadmin atadmin
> 214788 Dec 17 17:45 commons-io-2.6.jar -rwxrwxrwx 1 atadmin
> atadmin 207723 Dec 17 17:47 commons-lang-2.1.jar -rwxrwxrwx 1
> atadmin atadmin 315805 Dec 17 17:47 commons-lang3-3.1.jar
> -rwxrwxrwx 1 atadmin atadmin 210432 Dec 17 17:45
> displaytag-1.1.jar -rwxrwxrwx 1 atadmin atadmin 12590 Dec 17
> 17:45 displaytag-export-poi-1.1.jar -rwxrwxrwx 1 atadmin atadmin
> 312509 Dec 17 17:45 dom4j-1.5.2.jar -rwxrwxrwx 1 atadmin atadmin
> 47531 Dec 17 17:45 ehcache-1.1.jar -rwxrwxrwx 1 atadmin atadmin
> 1925498 Dec 17 17:45 hibernate3.jar -rwxrwxrwx 1 atadmin atadmin
> 65425 Dec 17 17:45 jakarta-oro.jar
> -rwxrwxrwx 1 atadmin atadmin 1979523 Dec 17 17:41 javaee-api-8.0.jar
I'm fairly sure this should be removed. Tomcat provides all of the APIs that you need. While this may be a compile-time dependency, everything should be provided at runtime by Tomcat.
> -rwxrwxrwx 1 atadmin atadmin 414240 Dec 17 16:29 jstl-1.2.jar
> -rwxrwxrwx 1 atadmin atadmin 105355 Dec 17 17:45
> old_lcms-webtools.jar -rwxrwxrwx 1 atadmin atadmin 795231 Dec 17
> 17:45 poi-2.5-final-20040302.jar -rwxrwxrwx 1 atadmin atadmin
> 55210 Dec 17 17:45 poi-contrib-2.5-final-20040302.jar -rwxrwxrwx 1
> atadmin atadmin 188942 Dec 17 17:45
> poi-scratchpad-2.5-final-20040302.jar -rwxrwxrwx 1 atadmin atadmin
> 475943 Dec 17 17:45 proxool-0.8.3.jar -rwxrwxrwx 1 atadmin atadmin
> 543706 Dec 17 17:47 struts.jar
Aha, I see. You are running Struts 1 which requires ancient versions of certain libraries.
> -rwxrwxrwx 1 atadmin atadmin 495271 Dec 17 17:47
> Struts-Layout.jar -rwxrwxrwx 1 atadmin atadmin 68046 Dec 17 17:47
> struts-menu-2.4.3.jar -rwxrwxrwx 1 atadmin atadmin 39427 Dec 17
> 17:47 taglibs-request.jar -rwxrwxrwx 1 atadmin atadmin 44061 Dec
> 17 17:45 USPS-Framework-1.0.8-alpha.jar -rwxrwxrwx 1 atadmin
> atadmin 834966 Dec 17 17:45 xercesImpl.jar
>
>
> atadmin@eagnmnmed1f45:/opt/TomCat/apache-tomcat-9.0.13/lib>ls -l
> total 13308 -rwxrwxrwx 1 atadmin atadmin 12966 Nov 2 09:29
> annotations-api.jar -rwxrwxrwx 1 atadmin atadmin 54415 Nov 2
> 09:29 catalina-ant.jar -rwxrwxrwx 1 atadmin atadmin 120721 Nov 2
> 09:29 catalina-ha.jar -rwxrwxrwx 1 atadmin atadmin 1652907 Nov 15
> 10:49 catalina.jar -rwxrwxrwx 1 atadmin atadmin 1653788 Nov 2
> 09:29 catalina.jar.20181115-1049
Remove this.
> -rwxrwxrwx 1 atadmin atadmin 78634 Nov 2 09:29
> catalina-storeconfig.jar -rwxrwxrwx 1 atadmin atadmin 338876 Nov
> 2 09:29 catalina-tribes.jar -rwxrwxrwx 1 atadmin atadmin 2769774
> Nov 2 09:29 ecj-4.7.3a.jar -rwxrwxrwx 1 atadmin atadmin 87515
> Nov 2 09:29 el-api.jar -rwxrwxrwx 1 atadmin atadmin 167490 Nov
> 2 09:29 jasper-el.jar -rwxrwxrwx 1 atadmin atadmin 557374 Nov 2
> 09:29 jasper.jar -rwxrwxrwx 1 atadmin atadmin 27900 Nov 2 09:29
> jaspic-api.jar -rwxrwxrwx 1 atadmin atadmin 63167 Nov 2 09:29
> jsp-api.jar -rwxrwxrwx 1 atadmin atadmin 3698857 Mar 12 17:51
> ojdbc7.jar
This is duplicated from your web application. If Tomcat is configuring your JDBC connector for you (using a <Resource> configuration) then you probably want to put your JAR file *here* and not in the applicatio n.
> -rwxrwxrwx 1 atadmin atadmin 282576 Nov 2 09:29 servlet-api.jar
> -rwxrwxrwx 1 atadmin atadmin 11212 Nov 2 09:29 tomcat-api.jar
> -rwxrwxrwx 1 atadmin atadmin 845744 Nov 2 09:29 tomcat-coyote.jar
> -rwxrwxrwx 1 atadmin atadmin 307435 Mar 19 17:42
> tomcat-dbcp-9.0.13.jar
Is this not what came with Tomcat? You should not replace any of Tomcat's libraries without a *very* good reason.
> -rwxrwxrwx 1 atadmin atadmin 65303 Nov 2 09:29
> tomcat-i18n-es.jar -rwxrwxrwx 1 atadmin atadmin 39235 Nov 2
> 09:29 tomcat-i18n-fr.jar -rwxrwxrwx 1 atadmin atadmin 42125 Nov
> 2 09:29 tomcat-i18n-ja.jar -rwxrwxrwx 1 atadmin atadmin 12166
> Nov 2 09:29 tomcat-i18n-ru.jar -rwxrwxrwx 1 atadmin atadmin
> 36029 Nov 2 09:29 tomcat-jni.jar -rwxrwxrwx 1 atadmin atadmin
> 165171 Nov 2 09:29 tomcat-util.jar -rwxrwxrwx 1 atadmin atadmin
> 208966 Nov 2 09:29 tomcat-util-scan.jar -rwxrwxrwx 1 atadmin
> atadmin 230254 Nov 2 09:29 tomcat-websocket.jar -rwxrwxrwx 1
> atadmin atadmin 38022 Nov 2 09:29 websocket-api.jar
It would be well worth your while to run OWASP's dependency-checker against your applications dependencies (libraries). It will liekly scare the hell out of you. Or, it should.
I suspect your problems are from:
1. Two drivers loaded at application level 2. One driver loaded at Tomcat level
I would remove all drivers from the application's WEB-INF/lib directory and leave the one in Tomcat's lib/ directory.
- -chris
> -----Original Message----- From: Olaf Kock [mailto:tomcat@olafkock.de]
> Sent: Monday, March 25, 2019 1:56 AM
> To: users@tomcat.apache.org Subject: [EXTERNAL] Re: Could not find
> datasource: java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
>
>
>
> On 25.03.19 03:41, Hua, Gary - Saint Louis, MO - Contractor wrote:
>> Hi experts:
>>
>> After I deployed my application TOPS to Tomcat server(9.0.13) on
>> Linux box, and started the server, I got the following error:
>>
>>
>> 1537 [main] FATAL connection.DatasourceConnectionProvider - Could
>> not find datasource: java:/comp/env/jdbc/TOPSDB
>> java.lang.ClassCastException:
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource cannot be cast to
>> javax.sql.DataSource at
>> org.hibernate.connection.DatasourceConnectionProvider.configure(Datas
o
>>
>>
urceConnectionProvider.java>
>> ...
>>
>> I have tried to put different version of tomcat-dbcp.jar like
>> tomcat-dbcp-7.0.47.jar/ tomcat-dbcp-8.0.23.jar/
>> tomcat-dbcp-9.0.13.jar into /opt/TomCat/apache-tomcat-9.0.13/lib,
>> but not the same error occurred.
>
> One way or another, the last sentence most likely is the most relevant
> information, and key to solving your problem: Whenever a Java class
> can't be typecast to its legitimate superclass or interface, this is a
> clear sign that the superclass or interface can be found twice on the
> classpath.
>
> The error message only contains the class name, not the classloader,
> so the root cause is effectively hidden. Make sure that
> javax.sql.DataSource is nowhere to be found in your app's WEB-INF/lib,
> and only once in tomcat's lib directory.
>
> Olaf
>
> ---------------------------------------------------------------------
>
>
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
> ---------------------------------------------------------------------
>
>
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlyaSGgACgkQHPApP6U8
pFjyPA/9GNnf9FVkSL3yly8ebDaDy405PfyEdAW1YfYBqYyDJzjQV9f7xeKj1evD
hQe49VzgnyfU6m/JF08CZHtD5lmXFBGScgL6y2WHsyeR4cBZPUDtTEatJbBCz3E6
wsI/kGE1AV3t6biKnKtlwFcrNUwddK191SCM8MysdTlwiHjpaACCUGKygEYZM5kn
WenMweDQI0KeRipHoMx80VoBrIHtSDBZpfawLsn1g52qOmKg5+HmRCfULPqdXEcA
OKPuSHX2y4IkyZqW2SOYRkAshcCTEBRjJMRF8EVJSKzIyeo/lhpkT2eZRLaONpq+
Fqd9cRQOH+NOP85iIQFgjLBWVGqj7xleGyrE4QbcNNKkQSAGvXtoGBCDNsqgved1
pIDxtTVdJ0izuIYROrOFqB1EYk/JaSWOLBodmqjI5gchSXNyf3AzVvEbxmoPyLq+
j0t6IYYuPuy0b0Rm2mKSsPVVOMs5RDRi59DrGQZzsXbuRAM4wOEx1jcx4IvnEaoQ
v2Zc5fYt+9m7phmg6lF2rS17BdFskJW+VrvqTA+E8f6ugj+owWtuZTE/66Ggaxgx
A9/mOBeIw2+TBr3SAfWrrJZHHBIymFH+i3hk+u5xMxyP1IFDj6w1PGGdUnq0vpp0
s1WXWqxsB50FWtXwzwo2Y37UiBZeaCMWpQEdkhwKb2vbPjFBDyg=
=1vHu
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: [EXTERNAL] Re: Could not find datasource:
java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Gary,
On 3/25/19 12:08, Hua, Gary - Saint Louis, MO - Contractor wrote:
> Olaf:
>
> Thanks for the input. I removed jdbc2_0-stdext.jar and
> tomcat-dbcp.jar from
> /opt/TomCat/apache-tomcat-9.0.13/webapps/TOPS-WEB/WEB-INF/lib and
> did some cleaning on /opt/TomCat/apache-tomcat-9.0.13/lib, now
> that is my lib folder looks like:
Wow, this must be a very old web application. You still have some
cleaning-up to do.
> atadmin@eagnmnmed1f45:/opt/TomCat/apache-tomcat-9.0.13/webapps/TOPS-WE
B/WEB-INF/lib>ls
> -l total 20648 -rwxrwxrwx 1 atadmin atadmin 433164 Dec 17 17:47
> antlr-2.7.5H3.jar -rwxrwxrwx 1 atadmin atadmin 281998 Dec 17 17:45
> cglib-2.1.jar
Super old.
[...]
> -rwxrwxrwx 1 atadmin atadmin 16777 Dec 17 17:45 asm-attrs.jar
> -rwxrwxrwx 1 atadmin atadmin 26360 Dec 17 17:45 asm.jar
> -rwxrwxrwx 1 atadmin atadmin 188671 Dec 17 17:47
> commons-beanutils.jar -rwxrwxrwx 1 atadmin atadmin 165119 Dec 17
> 17:45
commons-collections.jar
> -rwxrwxrwx 1 atadmin atadmin 168446 Dec 17 17:47
> commons-digester.jar -rwxrwxrwx 1 atadmin atadmin 26388 Dec 17
> 17:47 commons-logging.jar -rwxrwxrwx 1 atadmin atadmin 84462 Dec
> 17 17:47 commons-validator.jar -rwxrwxrwx 1 atadmin atadmin
> 153115 Dec 17 17:45 jdom.jar -rwxrwxrwx 1 atadmin atadmin 8812
> Dec 17 17:45 jta.jar -rwxrwxrwx 1 atadmin atadmin 367444 Dec 17
> 17:45 log4j.jar
I'm always suspicious of library JAR files that have no version
number. You might want to take a look at what these are and re-name
them appropriately.
> -rwxrwxrwx 1 atadmin atadmin 1196109 Dec 17 17:47 classes12.jar
classes12.jar is Oracle's JDBC driver written for Java 1.2. I'm fairly
sure that was hand-coded by Hammurabi himself. If you are indeed using
Oracle DB, you need to upgrade to a library version released during
this century.
> -rwxrwxrwx 1 atadmin atadmin 3698857 Mar 15 15:32 ojdbc7.jar
This is a second Oracle JDBC driver. Do you need both of them?
> -rwxrwxrwx 1 atadmin atadmin 4604132 Dec 17 17:45
> com.ibm.ws.webcontainer.jar
This is a WebSphere library. Presumably, you have left WebSphere
behind in favor of Tomcat? Or maybe you need some service that WS
provides and you have taken it with you?
> -rwxrwxrwx 1 atadmin atadmin 205318 Mar 19 11:20
> commons-dbcp2-2.6.0.jar -rwxrwxrwx 1 atadmin atadmin 70604 Dec 17
> 17:45 commons-fileupload-1.3.3.jar -rwxrwxrwx 1 atadmin atadmin
> 214788 Dec 17 17:45 commons-io-2.6.jar -rwxrwxrwx 1 atadmin
> atadmin 207723 Dec 17 17:47 commons-lang-2.1.jar -rwxrwxrwx 1
> atadmin atadmin 315805 Dec 17 17:47 commons-lang3-3.1.jar
> -rwxrwxrwx 1 atadmin atadmin 210432 Dec 17 17:45
> displaytag-1.1.jar -rwxrwxrwx 1 atadmin atadmin 12590 Dec 17
> 17:45 displaytag-export-poi-1.1.jar -rwxrwxrwx 1 atadmin atadmin
> 312509 Dec 17 17:45 dom4j-1.5.2.jar -rwxrwxrwx 1 atadmin atadmin
> 47531 Dec 17 17:45 ehcache-1.1.jar -rwxrwxrwx 1 atadmin atadmin
> 1925498 Dec 17 17:45 hibernate3.jar -rwxrwxrwx 1 atadmin atadmin
> 65425 Dec 17 17:45 jakarta-oro.jar
> -rwxrwxrwx 1 atadmin atadmin 1979523 Dec 17 17:41
> javaee-api-8.0.jar
I'm fairly sure this should be removed. Tomcat provides all of the
APIs that you need. While this may be a compile-time dependency,
everything should be provided at runtime by Tomcat.
> -rwxrwxrwx 1 atadmin atadmin 414240 Dec 17 16:29 jstl-1.2.jar
> -rwxrwxrwx 1 atadmin atadmin 105355 Dec 17 17:45
> old_lcms-webtools.jar -rwxrwxrwx 1 atadmin atadmin 795231 Dec 17
> 17:45 poi-2.5-final-20040302.jar -rwxrwxrwx 1 atadmin atadmin
> 55210 Dec 17 17:45 poi-contrib-2.5-final-20040302.jar -rwxrwxrwx 1
> atadmin atadmin 188942 Dec 17 17:45
> poi-scratchpad-2.5-final-20040302.jar -rwxrwxrwx 1 atadmin atadmin
> 475943 Dec 17 17:45 proxool-0.8.3.jar -rwxrwxrwx 1 atadmin atadmin
> 543706 Dec 17 17:47 struts.jar
Aha, I see. You are running Struts 1 which requires ancient versions
of certain libraries.
> -rwxrwxrwx 1 atadmin atadmin 495271 Dec 17 17:47
> Struts-Layout.jar -rwxrwxrwx 1 atadmin atadmin 68046 Dec 17 17:47
> struts-menu-2.4.3.jar -rwxrwxrwx 1 atadmin atadmin 39427 Dec 17
> 17:47 taglibs-request.jar -rwxrwxrwx 1 atadmin atadmin 44061 Dec
> 17 17:45 USPS-Framework-1.0.8-alpha.jar -rwxrwxrwx 1 atadmin
> atadmin 834966 Dec 17 17:45 xercesImpl.jar
>
>
> atadmin@eagnmnmed1f45:/opt/TomCat/apache-tomcat-9.0.13/lib>ls -l
> total 13308 -rwxrwxrwx 1 atadmin atadmin 12966 Nov 2 09:29
> annotations-api.jar -rwxrwxrwx 1 atadmin atadmin 54415 Nov 2
> 09:29 catalina-ant.jar -rwxrwxrwx 1 atadmin atadmin 120721 Nov 2
> 09:29 catalina-ha.jar -rwxrwxrwx 1 atadmin atadmin 1652907 Nov 15
> 10:49 catalina.jar -rwxrwxrwx 1 atadmin atadmin 1653788 Nov 2
> 09:29 catalina.jar.20181115-1049
Remove this.
> -rwxrwxrwx 1 atadmin atadmin 78634 Nov 2 09:29
> catalina-storeconfig.jar -rwxrwxrwx 1 atadmin atadmin 338876 Nov
> 2 09:29 catalina-tribes.jar -rwxrwxrwx 1 atadmin atadmin 2769774
> Nov 2 09:29 ecj-4.7.3a.jar -rwxrwxrwx 1 atadmin atadmin 87515
> Nov 2 09:29 el-api.jar -rwxrwxrwx 1 atadmin atadmin 167490 Nov
> 2 09:29 jasper-el.jar -rwxrwxrwx 1 atadmin atadmin 557374 Nov 2
> 09:29 jasper.jar -rwxrwxrwx 1 atadmin atadmin 27900 Nov 2 09:29
> jaspic-api.jar -rwxrwxrwx 1 atadmin atadmin 63167 Nov 2 09:29
> jsp-api.jar -rwxrwxrwx 1 atadmin atadmin 3698857 Mar 12 17:51
> ojdbc7.jar
This is duplicated from your web application. If Tomcat is configuring
your JDBC connector for you (using a <Resource> configuration) then
you probably want to put your JAR file *here* and not in the applicatio
n.
> -rwxrwxrwx 1 atadmin atadmin 282576 Nov 2 09:29 servlet-api.jar
> -rwxrwxrwx 1 atadmin atadmin 11212 Nov 2 09:29 tomcat-api.jar
> -rwxrwxrwx 1 atadmin atadmin 845744 Nov 2 09:29
> tomcat-coyote.jar -rwxrwxrwx 1 atadmin atadmin 307435 Mar 19 17:42
> tomcat-dbcp-9.0.13.jar
Is this not what came with Tomcat? You should not replace any of
Tomcat's libraries without a *very* good reason.
> -rwxrwxrwx 1 atadmin atadmin 65303 Nov 2 09:29
> tomcat-i18n-es.jar -rwxrwxrwx 1 atadmin atadmin 39235 Nov 2
> 09:29 tomcat-i18n-fr.jar -rwxrwxrwx 1 atadmin atadmin 42125 Nov
> 2 09:29 tomcat-i18n-ja.jar -rwxrwxrwx 1 atadmin atadmin 12166
> Nov 2 09:29 tomcat-i18n-ru.jar -rwxrwxrwx 1 atadmin atadmin
> 36029 Nov 2 09:29 tomcat-jni.jar -rwxrwxrwx 1 atadmin atadmin
> 165171 Nov 2 09:29 tomcat-util.jar -rwxrwxrwx 1 atadmin atadmin
> 208966 Nov 2 09:29 tomcat-util-scan.jar -rwxrwxrwx 1 atadmin
> atadmin 230254 Nov 2 09:29 tomcat-websocket.jar -rwxrwxrwx 1
> atadmin atadmin 38022 Nov 2 09:29 websocket-api.jar
It would be well worth your while to run OWASP's dependency-checker
against your applications dependencies (libraries). It will liekly
scare the hell out of you. Or, it should.
I suspect your problems are from:
1. Two drivers loaded at application level
2. One driver loaded at Tomcat level
I would remove all drivers from the application's WEB-INF/lib
directory and leave the one in Tomcat's lib/ directory.
- -chris
> -----Original Message----- From: Olaf Kock
> [mailto:tomcat@olafkock.de] Sent: Monday, March 25, 2019 1:56 AM
> To: users@tomcat.apache.org Subject: [EXTERNAL] Re: Could not find
> datasource: java:/comp/env/jdbc/TOPSDB when start Tomcat 9.0.13
>
>
>
> On 25.03.19 03:41, Hua, Gary - Saint Louis, MO - Contractor wrote:
>> Hi experts:
>>
>> After I deployed my application TOPS to Tomcat server(9.0.13) on
>> Linux box, and started the server, I got the following error:
>>
>>
>> 1537 [main] FATAL connection.DatasourceConnectionProvider -
>> Could not find datasource: java:/comp/env/jdbc/TOPSDB
>> java.lang.ClassCastException:
>> org.apache.tomcat.dbcp.dbcp2.BasicDataSource cannot be cast to
>> javax.sql.DataSource at
>> org.hibernate.connection.DatasourceConnectionProvider.configure(Datas
o
>>
>>
urceConnectionProvider.java>
>> ...
>>
>> I have tried to put different version of tomcat-dbcp.jar like
>> tomcat-dbcp-7.0.47.jar/ tomcat-dbcp-8.0.23.jar/
>> tomcat-dbcp-9.0.13.jar into
>> /opt/TomCat/apache-tomcat-9.0.13/lib, but not the same error
>> occurred.
>
> One way or another, the last sentence most likely is the most
> relevant information, and key to solving your problem: Whenever a
> Java class can't be typecast to its legitimate superclass or
> interface, this is a clear sign that the superclass or interface
> can be found twice on the classpath.
>
> The error message only contains the class name, not the
> classloader, so the root cause is effectively hidden. Make sure
> that javax.sql.DataSource is nowhere to be found in your app's
> WEB-INF/lib, and only once in tomcat's lib directory.
>
> Olaf
>
> ---------------------------------------------------------------------
>
>
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
> ---------------------------------------------------------------------
>
>
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlyaSGgACgkQHPApP6U8
pFjyPA/9GNnf9FVkSL3yly8ebDaDy405PfyEdAW1YfYBqYyDJzjQV9f7xeKj1evD
hQe49VzgnyfU6m/JF08CZHtD5lmXFBGScgL6y2WHsyeR4cBZPUDtTEatJbBCz3E6
wsI/kGE1AV3t6biKnKtlwFcrNUwddK191SCM8MysdTlwiHjpaACCUGKygEYZM5kn
WenMweDQI0KeRipHoMx80VoBrIHtSDBZpfawLsn1g52qOmKg5+HmRCfULPqdXEcA
OKPuSHX2y4IkyZqW2SOYRkAshcCTEBRjJMRF8EVJSKzIyeo/lhpkT2eZRLaONpq+
Fqd9cRQOH+NOP85iIQFgjLBWVGqj7xleGyrE4QbcNNKkQSAGvXtoGBCDNsqgved1
pIDxtTVdJ0izuIYROrOFqB1EYk/JaSWOLBodmqjI5gchSXNyf3AzVvEbxmoPyLq+
j0t6IYYuPuy0b0Rm2mKSsPVVOMs5RDRi59DrGQZzsXbuRAM4wOEx1jcx4IvnEaoQ
v2Zc5fYt+9m7phmg6lF2rS17BdFskJW+VrvqTA+E8f6ugj+owWtuZTE/66Ggaxgx
A9/mOBeIw2+TBr3SAfWrrJZHHBIymFH+i3hk+u5xMxyP1IFDj6w1PGGdUnq0vpp0
s1WXWqxsB50FWtXwzwo2Y37UiBZeaCMWpQEdkhwKb2vbPjFBDyg=
=1vHu
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org