I can think of a few options:
a) yGuard appears to be open source. Grab the source, find out how it works, debug the issue you are having, fix yGuard and put the fix back into the community. That is how open source software development works.
b) Try a different obfuscation package that has support so there is someone to yell at when it doesn't work. After all, if you feel that your code is so valuable that you want to protect it from prying eyes, then isn't that protection worth a few $$$?
c) Give yGuard the boot and release unobfuscated code.
My preference is option (c), but your needs and goals might be different.
BTW, the error message implies a problem with the web.xml file, mainly with a
servlet mapping. You might try running Tomcat with setting the -verbose:class JVM option. The -verbose:class option causes the JVM to print the name of each class file loaded and the JAR it came from. Run it with your app unobfuscated and note at which point your servlet classes are being loaded. Then run the obfuscated version and see what you get at that same point where your servlets should be loaded. You might also see if there is any debug or detailed logging available in the Tomcat source for debugging servlet loading (if not, you'll have to add that yourself.