5 Replies Latest reply on Mar 14, 2008 9:29 AM by jaikiran

    Need Urgent help!!!! JDBC Driver class not found: com.mysql.

    srama1

      I am going nuts about this error, Please help me to resolve this error. I have browsed around for solutions, but I don't see any replies for the similar posted errors.

      I have a simple servlet with hibernate code to upload the data to database.
      Hibernate code alone works fine without server side code, but when I try to add the hibernate code to the servlet it throws me this error, that means it's an issue with the JBOSS server.

      I am using the following in my eclipse:

      eclipse 3.2
      JBOSS server4.0.5
      HibernateTools 3.2.5
      mysql-connectorjava-5.0.8-bin.jar


      STACK TRACE:

      21:16:14,484 INFO [Configuration] configuring from resource: /hibernate.cfg.xml
      21:16:14,484 INFO [Configuration] Configuration resource: /hibernate.cfg.xml
      21:16:14,515 INFO [Configuration] Reading mappings from resource: subscription.hbm.xml
      21:16:14,578 INFO [HbmBinder] Mapping class: com.corporate.wiki.SubscriptionBean -> subscription
      21:16:14,593 INFO [Configuration] Configured SessionFactory: null
      21:16:14,593 INFO [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
      21:16:14,593 INFO [DriverManagerConnectionProvider] Hibernate connection pool size: 10
      21:16:14,593 INFO [DriverManagerConnectionProvider] autocommit mode: false
      21:16:14,593 FATAL [DriverManagerConnectionProvider] JDBC Driver class not found: com.mysql.jdbc.Driver
      java.lang.ClassNotFoundException: No ClassLoaders found for: com.mysql.jdbc.Driver

      at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:306)
      at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:511)
      at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at java.lang.ClassLoader.loadClassInternal(Unknown Source)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Unknown Source)
      at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
      at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
      at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
      at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
      at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:397)
      at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
      at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1933)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1216)
      at com.corporate.wiki.WikiServlet.init(WikiServlet.java:22)
      at javax.servlet.GenericServlet.init(GenericServlet.java:211)
      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
      at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      at java.lang.Thread.run(Unknown Source)
      21:16:14,593 ERROR [STDERR] org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver
      at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:66)
      at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
      at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
      at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:397)
      at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
      at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1933)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1216)
      at com.corporate.wiki.WikiServlet.init(WikiServlet.java:22)
      at javax.servlet.GenericServlet.init(GenericServlet.java:211)
      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
      at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: com.mysql.jdbc.Driver
      at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:306)
      at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:511)
      at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at java.lang.ClassLoader.loadClassInternal(Unknown Source)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Unknown Source)
      at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
      at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:61)
      ... 24 more
      21:16:14,609 ERROR [[WikiServlet]] Servlet.service() for servlet WikiServlet threw exception
      java.lang.NullPointerException
      at com.corporate.wiki.WikiServlet.doGet(WikiServlet.java:32)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      at java.lang.Thread.run(Unknown Source)
      21:16:40,765 INFO [DriverManagerConnectionProvider] cleaning up connection pool: null



      Servlet code:

      public class WikiServlet extends HttpServlet{
      
       SessionFactory sessionFactory;
       Session session = null;
      
       public void init(){
      
       try{
       // This step will read hibernate.cfg.xml and prepare hibernate for use
       sessionFactory = new Configuration().configure().buildSessionFactory();
       }catch(Exception e){
       e.printStackTrace();
       }
       }
      
       public void doGet(HttpServletRequest req, HttpServletResponse res)
       throws ServletException, IOException{
      
       String cmd = req.getParameter("cmd");
       session = sessionFactory.openSession();
      
       if ((cmd==null) || (cmd.length() <=0)){
       System.out.println("Inside if block");
       subscription(req, res, session);
       }
       }
      
       public void subscription(HttpServletRequest req, HttpServletResponse res, Session session)
       throws ServletException, IOException{
      
       try{
       String target = "/subscription.jsp";
      
       //use as url parameter later
       String userid = "1";
       String wikiid = "03";
      
       System.out.println("\nUSERID: "+userid +"\n"+"WIKIID: "+wikiid);
      
       SubscriptionBean subscribe = new SubscriptionBean(userid,wikiid);
       System.out.println("Instanciated bean");
       subscribe.print();
      
       //later change it to other code set
       HttpSession hsession=req.getSession(true);
       hsession.setAttribute("Subscription",subscribe);
      
       //Create new instance of Contact and set values in it by reading them from object
       System.out.println("Inserting Record to subscribe table");
      
       subscribe.setuser_id("10");
       subscribe.setwiki_page_id("39");
       subscribe.setsub_id(3);
      
       session.save(subscribe);
      
       System.out.println("Done");
       dispatch(req, res, target);
       }catch(Exception e){
       System.out.println(e.getMessage());
       }finally{
       // Actual contact insertion will happen at this step
       session.flush();
       session.close();
       }
       }


      config file
      <?xml version='1.0' encoding='utf-8'?>
      <!DOCTYPE hibernate-configuration PUBLIC
      "-//Hibernate/Hibernate Configuration DTD//EN"
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
      
      <hibernate-configuration>
      <session-factory>
       <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
       <property name="hibernate.connection.url">jdbc:mysql://localhost/COWS</property>
       <property name="hibernate.connection.username">root</property>
       <property name="hibernate.connection.password"></property>
       <property name="hibernate.connection.pool_size">10</property>
       <property name="show_sql">true</property>
       <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
       <property name="hibernate.hbm2ddl.auto">update</property>
       <!-- Mapping files -->
       <mapping resource="subscription.hbm.xml"/>
      </session-factory>
      </hibernate-configuration>


      Mapping file
      <hibernate-mapping>
       <class name="com.corporate.wiki.SubscriptionBean" table="subscription">
       <id name="sub_id" column="SUB_ID">
       <generator class="assigned"/>
       </id>
       <property name="user_id">
       <column name="USER_ID" />
       </property>
       <property name="wiki_page_id">
       <column name="WIKI_PAGE_ID"/>
       </property>
       </class>
      </hibernate-mapping>


        • 1. Re: Need Urgent help!!!! JDBC Driver class not found: com.my
          jaikiran

          Where have you placed the mysql-connectorjava-5.0.8-bin.jar? This jar has to be placed in %JBOSS_HOME%/server/< serverName>/lib folder.

          • 2. Re: Need Urgent help!!!! JDBC Driver class not found: com.my
            srama1

            Thanks for pointing me in right direction. I did have the jar file in lib directory, it was just in wrong path. It was in /server/all/lib instead of /server/default/lib.

            This was the question I always had. In what situtation do you use all and default directory under server ?

            • 3. Re: Need Urgent help!!!! JDBC Driver class not found: com.my
              jaikiran

              JBoss comes with 3 different server profiles, namely "minimal", "default" and "all". You can see these folders under %JBOSS_HOME%/server. The difference between these profiles is that "minimal" provides the minimal functionality, "default" provides almost all the functionality except clustering, whereas "all" profile even provides clustering.

              When you use the run.bat (without the -c parameter), the "default" instance is started. The other profiles are ignored. So any changes that you want to be visible will have to be made in the appropriate profile.

              If you want to start some other profile instead of the default profile, then use

              run.bat -c profilename


              Ex: run.bat -c all


              • 4. Re: Need Urgent help!!!! JDBC Driver class not found: com.my

                but what does it really buy me to provide a minimal configuration, that includes only stuff, I need in my application?
                I (newbie) find it very difficult to decicde what I really need and how to deactivate other stuff so I stick with the all profile for now.

                is it better performance, because some services are deactivated, or is it just lower memory consumption, because some jar files are not loaded?

                • 5. Re: Need Urgent help!!!! JDBC Driver class not found: com.my
                  jaikiran

                   

                  is it better performance, because some services are deactivated, or is it just lower memory consumption, because some jar files are not loaded?

                  It depends on which service you deactivate. The "default" profile is the most commonly used. However, if you want to slim down some services which are not required in your application, then you usually create a copy of the default folder and start removing the services. See the http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossASTuningSliming especially the Slimming section for more details.