java.lang.ClassCastException: org.apache.commons.dbcp.BasicDataSource cannot be cast to org.apache.commons.dbcp.BasicDataSource

Raja Anbazhagan

I'm getting this weird Exception while trying to retrieve a DataSource configured under Tomcat Global resources.

java.lang.ClassCastException: org.apache.commons.dbcp.BasicDataSource cannot be cast to org.apache.commons.dbcp.BasicDataSource
    org.apache.jsp.Monitor_jsp._jspService(Monitor_jsp.java:53)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

This is how my Monitor.jsp looks like

<%@ page import="org.apache.commons.dbcp.BasicDataSource" %>
<%@ page import="com.dixons.myapp.db.DataSourceHelper" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Monitor page</title>
</head>
<body>
<%
    BasicDataSource ds = (BasicDataSource) DataSourceHelper.getDbDataSource();
    out.println(ds.getNumActive() + " " + ds.getNumIdle());
%>
</body>
</html>

I know what a ClassCastException is. But I could not understand why Java considers these two classes as different even though they are of same name and are in same package?

My application works just fine with the object Cast to javax.sql.DataSource. But I want to convert it as a org.apache.commons.dbcp.BasicDataSource for this monitor page so that I can keep an Eye on my DB resources.

TheCodingFrog

This is because the same class is loaded by two different class loaders.

One could be WebappClassLoader loader and another by sun.misc.Launcher$AppClassLoader. More detail can be found here

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

org.apache.commons.dbcp.BasicDataSource - release connections on connection closing?

From Dev

org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to net.sourceforge.jtds.jdbcx.JtdsDataSource

From Dev

Invalid property 'connectionProperties' of bean class [org.apache.commons.dbcp.BasicDataSource]

From Dev

java.lang.AbstractMethodError: org.apache.commons.dbcp.PoolingDataSource

From Dev

Error starting Tomcat context with Spring-Boot: java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSource

From Dev

Error starting Tomcat context with Spring-Boot: java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSource

From Dev

What is difference between org.apache.commons.dbcp.BasicDataSource and com.ibm.db2.jcc.DB2DataSource

From Dev

What is difference between org.apache.commons.dbcp.BasicDataSource and com.ibm.db2.jcc.DB2DataSource

From Dev

java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolableConnection cannot be cast to oracle.jdbc.OracleConnection

From Dev

Missing org.apache.commons.dbcp package in Maven project

From Dev

org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${driver}'

From Dev

SpringBoot JNDI datasource throws java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory

From Dev

java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException

From Dev

org.apache.commons.lang.SerializationException: java.lang.ClassNotFoundException

From Dev

java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException

From Dev

Cannot import org.apache.commons.lang3.math.NumberUtils

From Dev

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'

From Dev

NoClassDefFoundError : org.apache.commons.lang.StringUtils

From Dev

java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer

From Dev

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

From Dev

java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

From Dev

java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

From Dev

java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

From Dev

#java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

From Dev

java.lang.ClassNotFoundException: org.apache.commons.logging.Log

From Dev

java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils

From Dev

java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

From Dev

java.lang.ClassNotFoundException: org.apache.commons.logging.Log

From Dev

org.apache.commons cannot be resolved to a type

Related Related

  1. 1

    org.apache.commons.dbcp.BasicDataSource - release connections on connection closing?

  2. 2

    org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to net.sourceforge.jtds.jdbcx.JtdsDataSource

  3. 3

    Invalid property 'connectionProperties' of bean class [org.apache.commons.dbcp.BasicDataSource]

  4. 4

    java.lang.AbstractMethodError: org.apache.commons.dbcp.PoolingDataSource

  5. 5

    Error starting Tomcat context with Spring-Boot: java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSource

  6. 6

    Error starting Tomcat context with Spring-Boot: java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSource

  7. 7

    What is difference between org.apache.commons.dbcp.BasicDataSource and com.ibm.db2.jcc.DB2DataSource

  8. 8

    What is difference between org.apache.commons.dbcp.BasicDataSource and com.ibm.db2.jcc.DB2DataSource

  9. 9

    java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolableConnection cannot be cast to oracle.jdbc.OracleConnection

  10. 10

    Missing org.apache.commons.dbcp package in Maven project

  11. 11

    org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${driver}'

  12. 12

    SpringBoot JNDI datasource throws java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory

  13. 13

    java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException

  14. 14

    org.apache.commons.lang.SerializationException: java.lang.ClassNotFoundException

  15. 15

    java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException

  16. 16

    Cannot import org.apache.commons.lang3.math.NumberUtils

  17. 17

    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'

  18. 18

    NoClassDefFoundError : org.apache.commons.lang.StringUtils

  19. 19

    java.lang.NoClassDefFoundError: org/apache/commons/collections/Transformer

  20. 20

    java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

  21. 21

    java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

  22. 22

    java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

  23. 23

    java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

  24. 24

    #java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

  25. 25

    java.lang.ClassNotFoundException: org.apache.commons.logging.Log

  26. 26

    java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils

  27. 27

    java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

  28. 28

    java.lang.ClassNotFoundException: org.apache.commons.logging.Log

  29. 29

    org.apache.commons cannot be resolved to a type

HotTag

Archive