Before we get too far off topic, I have one more hint that may or may not apply.
The difference you're seeing when using spring may be the effect of different classloaders. This is especially likely if you're running in an app server or servlet container, where there is a whole hierarchy of classloaders at work. What classloader is effect at a given point will determine the effective classpath.