this exception occurred when used create connection pool using c3p0 .
jun 03, 2015 11:41:29 com.mchange.v2.log.mlog info: mlog clients using java 1.4+ standard logging. jun 03, 2015 11:41:29 com.mchange.v2.c3p0.c3p0registry info: initializing c3p0-0.9.5 [built 02-january-2015 13:25:04 -0500; debug? true; trace: 10] jun 03, 2015 11:41:29 com.mchange.v2.c3p0.management.activemanagementcoordinator warning: c3p0registry mbean registered. means application using c3p0 undeployed, not pooleddatasources closed prior undeployment. may lead resource leaks on time. please take care close pooleddatasources. jun 03, 2015 11:41:29 com.mchange.v2.c3p0.impl.abstractpoolbackeddatasource info: initializing c3p0 pool... com.mchange.v2.c3p0.combopooleddatasource [ acquireincrement -> 5, acquireretryattempts -> 30, acquireretrydelay -> 1000, autocommitonclose -> false, automatictesttable -> null, breakafteracquirefailure -> false, checkouttimeout -> 0, connectioncustomizerclassname -> null, connectiontesterclassname -> com.mchange.v2.c3p0.impl.defaultconnectiontester, contextclassloadersource -> caller, datasourcename -> 1hge136991f2dudczsq8hw|458d8adc, debugunreturnedconnectionstacktraces -> false, description -> null, driverclass -> com.mysql.jdbc.driver, extensions -> {}, factoryclasslocation -> null, forceignoreunresolvedtransactions -> false, forceusenameddriverclass -> false, identitytoken -> 1hge136991f2dudczsq8hw|458d8adc, idleconnectiontestperiod -> 300, initialpoolsize -> 3, jdbcurl -> jdbc:mysql://localhost:3306/ductoreh_patientdb, maxadministrativetasktime -> 0, maxconnectionage -> 0, maxidletime -> 0, maxidletimeexcessconnections -> 0, maxpoolsize -> 20, maxstatements -> 50, maxstatementsperconnection -> 0, minpoolsize -> 2, numhelperthreads -> 3, preferredtestquery -> select 1, privilegespawnedthreads -> false, properties -> {user=******, password=******}, propertycycle -> 0, statementcachenumdeferredclosethreads -> 0, testconnectiononcheckin -> false, testconnectiononcheckout -> true, unreturnedconnectiontimeout -> 0, useroverrides -> {}, usestraditionalreflectiveproxies -> false ] jun 03, 2015 11:42:02 org.apache.catalina.loader.webappclassloader loadclass info: illegal access: web application instance has been stopped already. not load com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask. eventual following stack trace caused error thrown debugging purposes attempt terminate thread caused illegal access, , has no functional impact. java.lang.illegalstateexception @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1612) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571) @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629) @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44) @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161) @ java.util.timerthread.mainloop(timer.java:555) @ java.util.timerthread.run(timer.java:505) exception in thread "c3p0pooledconnectionpoolmanager[identitytoken->1hge136991f284clsmmfih|19faec40]-admintasktimer" java.lang.noclassdeffounderror: com/mchange/v2/resourcepool/basicresourcepool$asynctestidleresourcetask @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629) @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44) @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161) @ java.util.timerthread.mainloop(timer.java:555) @ java.util.timerthread.run(timer.java:505) caused by: java.lang.classnotfoundexception: com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1720) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571) ... 5 more jun 03, 2015 11:42:18 org.apache.catalina.loader.webappclassloader loadclass info: illegal access: web application instance has been stopped already. not load com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask. eventual following stack trace caused error thrown debugging purposes attempt terminate thread caused illegal access, , has no functional impact. java.lang.illegalstateexception @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1612) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571) @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629) @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44) @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161) @ java.util.timerthread.mainloop(timer.java:555) @ java.util.timerthread.run(timer.java:505) exception in thread "c3p0pooledconnectionpoolmanager[identitytoken->1hge136991f28gvv1q0gwo7|753c66d3]-admintasktimer" java.lang.noclassdeffounderror: com/mchange/v2/resourcepool/basicresourcepool$asynctestidleresourcetask @ com.mchange.v2.resourcepool.basicresourcepool.checkidleresources(basicresourcepool.java:1629) @ com.mchange.v2.resourcepool.basicresourcepool.access$2000(basicresourcepool.java:44) @ com.mchange.v2.resourcepool.basicresourcepool$checkidleresourcestask.run(basicresourcepool.java:2161) @ java.util.timerthread.mainloop(timer.java:555) @ java.util.timerthread.run(timer.java:505) caused by: java.lang.classnotfoundexception: com.mchange.v2.resourcepool.basicresourcepool$asynctestidleresourcetask @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1720) @ org.apache.catalina.loader.webappclassloader.loadclass(webappclassloader.java:1571) ... 5 more
these classes i've used .
-----connection , connection pool---
public class dbconnection { private static dbconnection datasource; private combopooleddatasource cpds; private dbconnection() throws ioexception, sqlexception, propertyvetoexception { cpds = new combopooleddatasource(); cpds.setdriverclass("com.mysql.jdbc.driver"); //loads jdbc driver cpds.setjdbcurl("jdbc:mysql://localhost:3306/xxxxx"); cpds.setuser("root"); cpds.setpassword(""); // settings below optional -- c3p0 can work defaults cpds.setminpoolsize(2); cpds.setacquireincrement(5); cpds.setmaxpoolsize(20); cpds.setmaxstatements(50); cpds.setidleconnectiontestperiod(300); cpds.settestconnectiononcheckout(true); cpds.setpreferredtestquery("select 1"); } public static dbconnection getinstance() throws ioexception, sqlexception, propertyvetoexception { if (datasource == null) { datasource = new dbconnection(); return datasource; } else { return datasource; } } public connection getconnection() throws sqlexception { return this.cpds.getconnection(); } }
----interface-------
public interface dbinterface { public list<userbean> getuserdata(); }
----bean------
public class userbean { private int iduser; private string companyname; private string country; private string adressline1; private string addressline2; private string zip; private string phone; private string email; private boolean istrial; private timestamp datecreated; private timestamp lastupdated; /** * @return iduser */ public int getiduser() { return iduser; } /** * @param iduser iduser set */ public void setiduser(int iduser) { this.iduser = iduser; } /** * @return companyname */ public string getcompanyname() { return companyname; } /** * @param companyname companyname set */ public void setcompanyname(string companyname) { this.companyname = companyname; } /** * @return country */ public string getcountry() { return country; } /** * @param country country set */ public void setcountry(string country) { this.country = country; } /** * @return adressline1 */ public string getadressline1() { return adressline1; } /** * @param adressline1 adressline1 set */ public void setadressline1(string adressline1) { this.adressline1 = adressline1; } /** * @return addressline2 */ public string getaddressline2() { return addressline2; } /** * @param addressline2 addressline2 set */ public void setaddressline2(string addressline2) { this.addressline2 = addressline2; } /** * @return zip */ public string getzip() { return zip; } /** * @param zip zip set */ public void setzip(string zip) { this.zip = zip; } /** * @return phone */ public string getphone() { return phone; } /** * @param phone phone set */ public void setphone(string phone) { this.phone = phone; } /** * @return email */ public string getemail() { return email; } /** * @param email email set */ public void setemail(string email) { this.email = email; } /** * @return istrial */ public boolean isistrial() { return istrial; } /** * @param istrial istrial set */ public void setistrial(boolean istrial) { this.istrial = istrial; } /** * @return datecreated */ public timestamp getdatecreated() { return datecreated; } /** * @param datecreated datecreated set */ public void setdatecreated(timestamp datecreated) { this.datecreated = datecreated; } /** * @return lastupdated */ public timestamp getlastupdated() { return lastupdated; } /** * @param lastupdated lastupdated set */ public void setlastupdated(timestamp lastupdated) { this.lastupdated = lastupdated; } }
---implementation class----
public class dbimpl implements dbinterface { public list<userbean> getuserdata() { system.out.println("01"); statement statement=null; connection connection=null; resultset resultset=null; list<userbean> beans=new arraylist<userbean>(); system.out.println("02"); try { system.out.println("03"); connection=dbconnection.getinstance().getconnection(); system.out.println("04"); string sql = "select * user istrial=true"; system.out.println("05"); statement=connection.createstatement(); system.out.println("06"); resultset=statement.executequery(sql.tolowercase()); system.out.println("07"); if(resultset.isbeforefirst()) { system.out.println("08"); while(resultset.next()){ system.out.println("09"); userbean bean=new userbean(); system.out.println("10"); bean.setiduser(resultset.getint("iduser")); system.out.println(resultset.getint("iduser")); bean.setcompanyname(resultset.getstring("companyname")); system.out.println(resultset.getstring("companyname")); bean.setcountry(resultset.getstring("country")); bean.setadressline1(resultset.getstring("address_line1")); bean.setaddressline2(resultset.getstring("address_line2")); bean.setzip(resultset.getstring("zip")); bean.setphone(resultset.getstring("phone")); bean.setemail(resultset.getstring("email")); bean.setistrial(resultset.getboolean("istrial")); bean.setdatecreated(resultset.gettimestamp("datecreated")); bean.setlastupdated(resultset.gettimestamp("lastupdated")); beans.add(bean); } } } catch (exception ex) { ex.printstacktrace(); }finally{ try{ if(resultset!=null){ resultset.close(); } if(statement!=null){ statement.close(); } if(connection!=null){ connection.close(); } }catch(exception e){ e.printstacktrace(); } } return beans; } }
when run following servlet , got above exception .
---servlet---
public class test01 extends httpservlet { /** * processes requests both http <code>get</code> , <code>post</code> * methods. * * @param request servlet request * @param response servlet response * @throws servletexception if servlet-specific error occurs * @throws ioexception if i/o error occurs */ protected void processrequest(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { response.setcontenttype("text/html;charset=utf-8"); printwriter out = response.getwriter(); try { dbinterface bimpl=new dbimpl(); list<userbean> userdata = bimpl.getuserdata(); for(int i=0;i<userdata.size();i++){ out.println(userdata.get(i).tostring()); } } { out.close(); } }
in here want know how exception arised , why ? complete expected task bought me above error . , new comer connection pooling .
hi had same exception in 1 of application worked .below helpful links referred when faced similar issue.:
[1] https://forums.hibernate.org/viewtopic.php?t=924835&view=next&sid=abc532479937768dd0fd58e82a1f465f
during re-deployment classes unloaded, if fail close hibernate's sessionfactory these classnotfound errors. 1 of answer in #2 suggest can add custom servletcontextlistener handle contextdestroyed event.
Comments
Post a Comment