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

Reply via email to