Copy link to clipboard
Copied
Good afternoon,
We have a strange error that's appearing on one of two load balanced servers which seems to have started a few days ago. The error is:
java.lang.NoClassDefFoundError: coldfusion/runtime/QueryTableWrapper
(Followed by a rather large stack trace)
It seems to me that this is happening whenever we try to query the database. Only some pages exhibit this error.Our immediate solution is to remove the server from the load balancing and investgate more closely after the holiday weekend. But in the meantime, can anyone give me a clue as to which file or files might be worth investigating?
My gut tells me that there's either a missing file or some sort of corruption. I can't see that the Classpath has changed at all. And why would it? It's a production server. I've compared the settings between the two servers and they are identical as far as I can see.
Does anyone have any input on what this might be? How to isolate what the problem might be? We're running CF 8 on Windows (Not sure what version). Restarting CF doesn't change anything. Rebooting the server doesn't either. So my next theory is there's something with the files on disk.
Thanks,
--Joel
Copy link to clipboard
Copied
Are the disks with the CF install on them local to the server, or on some manner of network storage?
It certainly sounds like the CF server is losing the plot as to where its files are, but I've never seen this happening before.
Have you checked your cfusion.jar file to make sure it's not been munged?
--
Adam
Copy link to clipboard
Copied
Adam,
The disks are local as far as I know. I agree that the server was unable to find the proper file(s), which was my initial guess: that maybe the classpath was lost/changed/corrupted.
What I can say is that my sysadmin was able to recover things by (eventually) copying the config files from the working server to the bad server. That indicates to me that the bad server may have had it's config corrupted. Not having been there, I can't say the exact steps he took, but I wouldn't be surprised if this error manifests again in some other "spooky" behavior.
As far as I know, he didn't modify any .jar files.Only configuration. My next guess would have been to start a file-by-file comparison of the core ColdFusion directory.
Thanks for the input.
--Joel
Copy link to clipboard
Copied
The disks are local as far as I know. I agree that the
server was unable to find the proper file(s), which was my
initial guess: that maybe the classpath was
lost/changed/corrupted.
I am not sure what the problem was, but keep in mind there is a difference between ClassNotFoundException and NoClassDefFoundError. I made that mistake on one occasion and ended up chasing my tail for a while before I realized the error was different than I was thinking.
NoClassDefFoundError's do not always mean that the class was not found. But often that the definition was not found. As I understand it, it is the class loader's way of saying it was passed some object it cannot reliably identify. It could be anything from having two version of the same jar in the classpath (ie there is ambiguity) or even passing one class loader an object created by a different class loader.
Since QueryTableWrapper seems to be an internal CF class, I am not sure if that applies here. But it is something to keep in mind if you ever encounter that error again in the future.
HTH
-Leigh