Hi All, I am trying to write a custom tag handler to generate a File using a custom template. The xdoclet.xml is generated prpperly.
However, while processing the template, i get the followin exception: [templatedoclet] (XDocletMain.start 34 ) Context successfully loaded. [templatedoclet] (XDocletMain.start 41 ) SubTask template initialized. [templatedoclet] (XDocletMain.start 47 ) Running <template/> [templatedoclet] Error parsing File C:\testbld\this\com\elitecore\billing\ejb\facades\session\RO_CustomerSession Bean.java:Lexical error: xjavadoc.TokenMgrError: Lexical error at line 11, column 0. Encountered: <EOF> after : "" [templatedoclet] (TemplateSubTask.engineStarted 789 ) Generating output for 'com.elitecore.billing.ejb.facades.session.CustomerSessionBean' using template file 'file:/C:/testbld/test-template.xdt'. [templatedoclet] (TemplateEngine.invokeMethod 532 ) Could not find method com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler.getRawClassComments" in class com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler [templatedoclet] xdoclet.template.TemplateException: Could not find method getRawClassComments" in class com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler (com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler.getRawClassComments"(java.uti l.Properties)) [templatedoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:533) [templatedoclet] at xdoclet.template.TemplateEngine.invokeContentMethod(TemplateEngine.java:582) [templatedoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:437) [templatedoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:333) [templatedoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:382) [templatedoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:559) [templatedoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:765) [templatedoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:665) [templatedoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:592) [templatedoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:485) [templatedoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [templatedoclet] at xdoclet.DocletTask.start(DocletTask.java:458) [templatedoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:96) [templatedoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:269) [templatedoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [templatedoclet] at org.apache.tools.ant.Target.execute(Target.java:301) [templatedoclet] at org.apache.tools.ant.Target.performTasks(Target.java:328) [templatedoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1215) [templatedoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1063) [templatedoclet] at org.apache.tools.ant.Main.runBuild(Main.java:632) [templatedoclet] at org.apache.tools.ant.Main.startAnt(Main.java:183) [templatedoclet] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:197) [templatedoclet] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:56) [templatedoclet] (XDocletMain.start 53 ) Running XDoclet failed. [templatedoclet] (XDocletMain.start 54 ) <<Running XDoclet failed.>> [templatedoclet] xdoclet.template.TemplateException: Could not find method getRawClassComments" in class com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler (com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler.getRawClassComments"(java.uti l.Properties)) [templatedoclet] at xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:533) [templatedoclet] at xdoclet.template.TemplateEngine.invokeContentMethod(TemplateEngine.java:582) [templatedoclet] at xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:437) [templatedoclet] at xdoclet.template.TemplateEngine.generate(TemplateEngine.java:333) [templatedoclet] at xdoclet.template.TemplateEngine.start(TemplateEngine.java:382) [templatedoclet] at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:559) [templatedoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:765) [templatedoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:665) [templatedoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:592) [templatedoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:485) [templatedoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [templatedoclet] at xdoclet.DocletTask.start(DocletTask.java:458) [templatedoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:96) [templatedoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:269) [templatedoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [templatedoclet] at org.apache.tools.ant.Target.execute(Target.java:301) [templatedoclet] at org.apache.tools.ant.Target.performTasks(Target.java:328) [templatedoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1215) [templatedoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1063) [templatedoclet] at org.apache.tools.ant.Main.runBuild(Main.java:632) [templatedoclet] at org.apache.tools.ant.Main.startAnt(Main.java:183) [templatedoclet] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:197) [templatedoclet] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:56) [templatedoclet] (XDocletMain.start 64 ) Template Exception = xdoclet.template.TemplateException: Could not find method getRawClassComments" in class com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler (com.elitecore.xdoclet.ejb.ReadOnlyTagsHandler.getRawClassComments"(java.uti l.Properties)) [templatedoclet] (XDocletMain.start 65 ) Nested Exception = null [templatedoclet] C:\testbld\build.xml:23: XDoclet failed. [templatedoclet] at xdoclet.DocletTask.start(DocletTask.java:461) [templatedoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:96) [templatedoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:269) [templatedoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [templatedoclet] at org.apache.tools.ant.Target.execute(Target.java:301) [templatedoclet] at org.apache.tools.ant.Target.performTasks(Target.java:328) [templatedoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1215) [templatedoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1063) [templatedoclet] at org.apache.tools.ant.Main.runBuild(Main.java:632) [templatedoclet] at org.apache.tools.ant.Main.startAnt(Main.java:183) [templatedoclet] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:197) [templatedoclet] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:56) [templatedoclet] Caused by: xdoclet.XDocletException: Running XDoclet failed. [templatedoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:774) [templatedoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:665) [templatedoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:592) [templatedoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:485) [templatedoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [templatedoclet] at xdoclet.DocletTask.start(DocletTask.java:458) [templatedoclet] ... 11 more [templatedoclet] --- Nested Exception --- [templatedoclet] xdoclet.XDocletException: Running XDoclet failed. [templatedoclet] at xdoclet.TemplateSubTask.generateForClass(TemplateSubTask.java:774) [templatedoclet] at xdoclet.TemplateSubTask.startProcessPerClass(TemplateSubTask.java:665) [templatedoclet] at xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:592) [templatedoclet] at xdoclet.TemplateSubTask.execute(TemplateSubTask.java:485) [templatedoclet] at xdoclet.XDocletMain.start(XDocletMain.java:48) [templatedoclet] at xdoclet.DocletTask.start(DocletTask.java:458) [templatedoclet] at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:96) [templatedoclet] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:269) [templatedoclet] at org.apache.tools.ant.Task.perform(Task.java:364) [templatedoclet] at org.apache.tools.ant.Target.execute(Target.java:301) [templatedoclet] at org.apache.tools.ant.Target.performTasks(Target.java:328) [templatedoclet] at org.apache.tools.ant.Project.executeTarget(Project.java:1215) [templatedoclet] at org.apache.tools.ant.Project.executeTargets(Project.java:1063) [templatedoclet] at org.apache.tools.ant.Main.runBuild(Main.java:632) [templatedoclet] at org.apache.tools.ant.Main.startAnt(Main.java:183) [templatedoclet] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:197) [templatedoclet] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:56) BUILD FAILED C:\testbld\build.xml:23: Unexpected error Total time: 3 seconds C:\testbld> Apparently it cannot find the method. I am attaching the code for my handler class. what am i missing here?? Please Help.. the documentation on this is minimal.... Pawan
/* * Copyright (C) Elitecore Technologies Ltd. * ReadOnlyTagsHandler.java * Created on Jun 1, 2004 * @author pawanraj */ package com.elitecore.xdoclet.ejb; import org.apache.commons.logging.Log; import xdoclet.XDocletTagSupport; import xdoclet.util.LogUtil; import xjavadoc.XClass; import java.util.Properties; /** * @author pawanraj * @xdoclet.taghandler namespace="EJBReadOnly" */ public class ReadOnlyTagsHandler extends XDocletTagSupport { private static Log log; /** * @doc.tag type="content" */ public static String getRawClassComments(Properties attributes) { log = LogUtil.getLog(ReadOnlyTagsHandler.class, "getRawClassComments"); log.info("Entering getRawClassComments!!"); String strRet = null; XClass clazz = getCurrentClass(); strRet = clazz.getDoc().toString(); log.info(strRet + "is the returned text"); log.info("Exiting getRawClassComments!!"); return strRet; } // public static void main(String args[]) // { // System.out.println("fff"); // System.out.println(getRawClassComments()); // } }