Database Drivers do not work (suddenly)

Website shows:

cannot load class through its string name, because no definition for the class with the specified name [org.gjt.mm.mysql.Driver] could be found caused by (java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver not found by lucee.core [64];java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver;)

DB Logs show me:

"ERROR","http-nio-8888-exec-4","10/16/2017","12:35:10","","query tag;cannot load class through its string name, because no definition for the class with the specified name [org.gjt.mm.mysql.Driver] could be found caused by (java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver;java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver not found by lucee.core [64];);lucee.runtime.exp.NativeException: cannot load class through its string name, because no definition for the class with the specified name [org.gjt.mm.mysql.Driver] could be found caused by (java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver;java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver not found by lucee.core [64];)
	at lucee.commons.lang.ClassUtil.loadClass(ClassUtil.java:217)
	at lucee.transformer.library.ClassDefinitionImpl.getClazz(ClassDefinitionImpl.java:81)
	at lucee.runtime.db.DataSourceSupport._initializeDriver(DataSourceSupport.java:139)
	at lucee.runtime.db.DataSourceSupport.initialize(DataSourceSupport.java:111)
	at lucee.runtime.db.DataSourceSupport.getConnection(DataSourceSupport.java:88)
	at lucee.runtime.db.DatasourceConnectionPool.loadDatasourceConnection(DatasourceConnectionPool.java:130)
	at lucee.runtime.db.DatasourceConnectionPool.getDatasourceConnection(DatasourceConnectionPool.java:100)
	at lucee.runtime.db.DatasourceManagerImpl.getConnection(DatasourceManagerImpl.java:76)
	at lucee.runtime.tag.Query.executeDatasoure(Query.java:895)
	at lucee.runtime.tag.Query.doEndTag(Query.java:664)
	at application_cfm$cf.call(/Application.cfm:58)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:908)
	at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:833)
	at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:54)
	at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
	at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2405)
	at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2395)
	at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2363)
	at lucee.runtime.engine.Request.exe(Request.java:46)
	at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1084)
	at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1032)
	at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:102)
	at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: lucee.commons.lang.ClassException: cannot load class through its string name, because no definition for the class with the specified name [org.gjt.mm.mysql.Driver] could be found caused by (java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver;java.lang.ClassNotFoundException:org.gjt.mm.mysql.Driver not found by lucee.core [64];)
	... 45 more
"

Please help!

Thanks

There are problems with the latest MySQL extension. It may be possible to work around it by changing your data source class definitions but my advice would be to downgrade to the previous 5.x version (easy to do via the server admin under Extension > Applications > MySQL). For more details see:

https://luceeserver.atlassian.net/browse/LDEV-1496

Thank you. That changed the frontend - no more error and working again.
But I have a Problem on the backend side to:

invalid interface definition, can't find interface [IDriver]

when I go to the DB Settings.

services >> datasource

The Error Occurred in
/var/www/virtual/domain.de/htdocs/WEB-INF/lucee/context/admin/dbdriver/MySQL.cfc: line 1 
1: <cfcomponent extends="Driver" output="no" implements="IDriver">
2: 
3: <cfset fields=array(

called from /admin/services.datasource.cfm: line 16 
called from /admin/web.cfm: line 392 
called from /admin/server.cfm: line 2 

I had the same with mssql and deactiveted it (I am on a debian 8.7 box)

1 Like

Hallo,
I have the same problem, but i can’t call the lucee-Admin, because Client and session data ar stored in the DB and so i can’t degrade the Driver with Lucee-Admin.
So i must Change the mysql-driver manualy.
Can somone tell me, where i find the Driver (I have a backup from the lucee-Directory bevor upgrade)

Thanks

Wilfried

Is there a possibility, to change the Settings so, that the admin store the session and Client data in the Memory?
My Idea:
<cfapplication name=“ImeH”
…
clientStorage = “memory”
sessionStorage = “memory”
…
/>
An where can i find the file for these Settings?
http://127.0.0.1:8888/lucee/admin/server.cfm

Hallo,
i have found a workarround:
after renaming the file
C:\lucee\tomcat\lucee-server\bundles\com.mysql.cj-6.0.5.jar
all application starts, also lucee-Administration.
When i call the mysql-Driver in Lucee-Admin, it Shows:

Installierte Version
6.0.5

VerfĂĽgbare Version
5.1.38, 5.1.20

Type
Full Version

Kategorie
Datasource

Erscheinungsdatum
06.09.2017

Id
7E673D15-D87C-41A6-8B5F1956528C605F

Provider
Lucee Association Switzerland Extension Store (extension.lucee.org)

Required Bundles (Jars)

  • com.mysql.cj (6.0.5)

Thanks @Julian_Halliwell, but this does not change anything here.

Any (more) Ideas?

Regards

By “this” do you mean downgrading back to the 5.x version? If so have you restarted Lucee?

Yes I mean the downgrading and restart.

Need any logs?

Try deleting and re-creating the MySQL datasource, assuming it’s defined in the admin.

But how?
I can not access the site.

Lucee 5.2.4.37 Error (expression)
Message	invalid interface definition, can't find interface [IDriver]
Stacktrace	The Error Occurred in
/var/www/virtual/domain.com/htdocs/WEB-INF/lucee/context/admin/dbdriver/MySQL.cfc: line 1 
1: <cfcomponent extends="Driver" output="no" implements="IDriver">
2: 
3: <cfset fields=array(

called from /admin/services.datasource.cfm: line 16 
called from /admin/web.cfm: line 392 

is the error I get when I try to open this website (the link Services >> Datasource)

Try editing this file /var/www/virtual/domain.com/htdocs/WEB-INF/lucee-web.xml.cfm and removing the `<data-source …/> element. You may need to restart, or possibly just edit another setting so that the xml is reloaded.

OK, I will try. But this happens at Server and Web Admin Level.

After changing it, it is the same. I still get the IDriver Error.
The database can be access via the websites but I can not edit , add, sth at the backend lucee admin / server-web.

If the datasource is defined in the server admin then try editing the XML file in the server context.

In your Lucee installation root, look for a directory called lucee-server. I’m using Tomcat and for me the path is: <lucee-install-root>/tomcat/lucee-server. In there you should find a file lucee-server.xml. Again look for the <data-source …/> element and remove it. Change another setting to reload the XML, or restart.

…and obviously remove any other MySQL datasources that you might have defined using the version 6.x driver. I’m assuming you only have one.

No, I do not have any DBs at server admin level.
But the error exists in the server and web admin datasource tab.

I can give you access to the admin if you want to or do a video.

Sorry, running out of time here and not sure I can help any further. I was just going on the assumption if you cleaned out the problematic 6.x datasource you could start again with 5.x.

Can you access the extensions admin page? If so try removing the MySQL extension completely. then reinstalling it as version 5.x

Otherwise re-installing Lucee is another option and making sure you don’t upgrade the MySQL extension even though it wants you to.

OK, this was really weird, but below an account of what helped 4 me!

I changed the lucee-web.xml.cfm in /websiteroot/domainname/WEB-INF/lucee by hand (altered one setting in the XML), saved it and restarted Tomcat (Lucee).

Voila, everything works again regarding the datasources! In the Server admin and in the Web admin. Really weird in my opinion, but anyways.

Am on 5.1.38 of the MySQL driver and Lucee 5.2.5.70.

in case someone stumbles across this:
we had same datasource defined in web admin and then made in the application.cfc file… Old server being updated, and missed a root file that we no longer use