My custom event handler is not working! What is wrong?

If you get a message in server.log (or events.log) that your event handler could not be parsed, these are some points you might check.

Did you change the package of your class containing handler code?
This is not supported.
Did you move event.xml to another directory?
This is not supported.
Did you compile your java code with a Java version that is not supported by the JVM running on the TeamForge server?
Did you use a very long file name for your JAR file?
Only 31 characters are supported.
Did you include libraries in your JAR file that have already been part of the default TeamForge class path?
In this case, your libraries will not be picked up.
Did you try to reference internal TF classes from packages other than the SOAP namespace?
In this case, the TeamForge security classloader will reject your JAR file.
Did you change the DTD location referenced in events.xml?
This will not work.
Did you try to trigger a follow up action in a synchronous event handler?
This will most likely result in a time out exception, since your code is already running in a transaction that locks the resources you are trying to obtain a lock for.
Did you trigger a TeamForge SOAP call with the session ID passed to your handler which threw an exception?
See Using an asynchronous event handler: trigger follow-up events for an explanation why this does not work.