Classes used in the web app have to be in a place where one of the involved classloaders can get at them. Usually that's WEB-INF/lib or WEB-INF/classes in the wbe app itself, or maybe in a shared directory of the
servlet container, or -as a last resort- via the extension mechanism of the JVM. If none of these work, then it's either really tricky (think custom classloaders) or impossible.