Generally different .wars are loaded by separate classloaders. Hence there will be multiple (and incompatible) copies of any common classes present in those wars. For eg, a singleton won't really be a singleton, and each war will load it's own copy of the class. If you truly want, say a singleton, it should be present up the classloader hierarchy. This can be achieved by placing it in the classpath. This is generally how containers load classes, although there's no guarantee.