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());
// }
}