QueryLoader uses QueryLoader.class.getResourceAsStream(path) which looks for a
resource relative to the current class (QueryLoader), you can use / to indicate
classpath root but this does not work with weblogic possibly due to the way in
which weblogic manages the classpath for .war files.
If I use getClass().getClassLoader().getResourceAsStream(path) instead and dont
use leading / for the path then this works locally and for weblogic.
See method: loadQueries(String path)
would be backwards incompatible. I did change
QueryLoader.class.getResourceAsStream(path) to
getClass().getResourceAsStream(path) so that if you're using a subclass of
QueryLoader you will use whatever ClassLoader loaded your subclass instead of
the one that loaded QueryLoader.
You might try writing and using an empty subclass of QueryLoader to see if this
change fixes the issue. If not, loadQueries() is now protected so you could
override loadQueries() and change how the ClassLoader is handled (COM-1607).
Also, it seems that for this problem to occur in WebLogic you must have
commons-dbutils.jar someplace other than your app's WEB-INF/lib directory. If
it's in some shared directory that WebLogic loads with a different ClassLoader
than WEB-INF/lib jars, this problem is almost certain to happen. Try placing
commons-dbutils.jar in your WEB-INF/lib directory.