It looks to me like you have the wrong classname. Between 1.1 and 1.2, they jiggled the package names. Try classname="xdoclet.modules.ejb.EjbDocletTask" in your <taskdef>.
This works for me: <path id="xdoclet.classpath"> <path refid="build.classpath" /> <pathelement location="${log4j.jar}" /> <pathelement location="${servlet.jar}" /> <pathelement location="${ant.jar}" /> <pathelement location="${j2ee.jar}" /> <fileset dir="${xdoclet.dir}/lib"> <include name="*.jar" /> </fileset> </path> <taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath" /> I had exactly this problem when I migrated from 1.1 to 1.2. A neat trick to figure out what's going on is to try to understand what jar has the class you need. I do something like this in bash: for j in $(find $XDOCLET_HOME -name \*.jar); do unzip -l $j | grep EjbDocletTask if [ "$?" == "0" ]; then echo $j fi done When I did this, I noticed the package name had changed. Incidentally, I've also noticed a significant performance gain to be had by placing the taskdef's in the targets that use them. A lot of processing seems to go on in xdoclet for every target, regardless of whether it uses any xdoclet tags. Moving the taskdefs into the targets seems to fix that. It also works around a bug whereby a given taskdef can only be used once per context. -- Eric Lennon Bowman BoboCo Ltd [EMAIL PROTECTED] +35317978944 ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01 _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user