I am new to doclet. I am getting the following error. D:\darma\XDoclet_example\code>ant Buildfile: build.xml
init: prepare: [mkdir] Created dir: D:\darma\XDoclet_example\code\build [mkdir] Created dir: D:\darma\XDoclet_example\code\build\ejb [mkdir] Created dir: D:\darma\XDoclet_example\code\build\ejb\META-INF [mkdir] Created dir: D:\darma\XDoclet_example\code\build\j2ee [mkdir] Created dir: D:\darma\XDoclet_example\code\dist [mkdir] Created dir: D:\darma\XDoclet_example\code\gen-src [mkdir] Created dir: D:\darma\XDoclet_example\code\gen-src\java ejbdoclet: BUILD FAILED file:D:/darma/XDoclet_example/code/build.xml:56: The ejbdoclet task doesn't support the sourcepath attribute. Total time: 2 seconds I am given below the build.xml. <?xml version="1.0"?> <project name="EJB Xbean" default="ejb-jar" basedir="."> <!-- Init --> <target name="init"> <property name="lib.dir" value="lib" /> <property name="xdoclet.jar.path" value="D:/darma/xdoclet-1.2.2/lib/xdoclet-1.2.2.jar;D:/darma/xdoclet-1.2.2/lib/xdoclet-ejb-module-1.2.2.jar;D:/darma/xdoclet-1.2.2/lib/xjavadoc-1.1.jar;D:/darma/xdoclet-1.2.2/lib/xdoclet-bea-module-1.2.2.jar;D:/darma/xdoclet-1.2.2/lib/xdoclet-web-module-1.2.2.jar" /> <property name="log4j.jar.path" value="D:/darma/xdoclet-1.2.2/lib/log4j.jar" /> <property name="ant.jar.path" value="D:/bea/weblogic81/server/lib/ant/ant.jar" /> <property name="src.dir" value="src" /> <property name="generated.src.dir" value="gen-src" /> <property name="java.dir" value="." /> <property name="generated.java.dir" value="${generated.src.dir}/java" /> <property name="config.dir" value="config" /> <property name="build.dir" value="build" /> <property name="dist.dir" value="dist" /> <property name="build.compiler" value="modern" /> <property name="name" value="receiver-xbean" /> </target> <!-- Prepare --> <target name="prepare" depends="init"> <mkdir dir="${build.dir}" /> <mkdir dir="${build.dir}/ejb" /> <mkdir dir="${build.dir}/ejb/META-INF" /> <mkdir dir="${build.dir}/j2ee" /> <mkdir dir="${dist.dir}" /> <mkdir dir="${generated.src.dir}" /> <mkdir dir="${generated.java.dir}" /> </target> <!-- Run EJBDoclet --> <target name="ejbdoclet" depends="prepare"> <taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpath="${java.class.path};${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path}" /> <ejbdoclet sourcepath="${java.dir}" destdir="${generated.java.dir}" excludedtags="@version,@author" ejbspec="2.0"> <fileset dir="${java.dir}"> <include name="**/ReceiverBean.java" /> </fileset> <remoteinterface/> <homeinterface/> <deploymentdescriptor destdir="${build.dir}/ejb/META-INF"/> <weblogic xmlencoding="UTF-8" destdir="${build.dir}/ejb/META-INF" validatexml="true"/> </ejbdoclet> </target> <!-- Compile --> <target name="compile" depends="ejbdoclet"> <!-- Compile EJBs --> <javac srcdir="${java.dir};${generated.java.dir}" destdir="${build.dir}/ejb" includes="examples/*.java"> </javac> </target> <!-- Create EJB-JAR file --> <target name="ejb-jar" depends="compile"> <jar jarfile="${build.dir}/j2ee/${name}-ejb.jar" basedir="${build.dir}/ejb" /> </target> <!-- Clean everything --> <target name="clean" depends="init"> <delete dir="${build.dir}" /> <delete dir="${dist.dir}" /> <delete dir="${generated.src.dir}" /> </target> </project> ------------------------ My directory structure is as follows.. D:\darma\XDoclet_example\code is the root directory Here I have build.xml file & a directory named example. The example directory contains a single file called ReceiverBean.java I have enclosed ReceiverBean.java. It is in package examples... Any help is highly appreciated. Thanks and Regards, DARMA
package examples; import java.rmi.*; import javax.ejb.*; import org.w3c.dom.Document; import org.xbeans.DOMEvent; import org.xbeans.DOMSource; import org.xbeans.DOMListener; import org.xbeans.XbeansException; /** * This is the EJB Receiver Xbean * * @ejb:bean type="Stateless" * name="org.xbeans.communication.ejb.receiver.Receiver" * jndi-name="org.xbeans.communication.ejb.receiver.Receiver" * display-name="EJB Receiver Xbean" * * @ejb:env-entry name="channelBean" type="java.lang.String" value="your.channel.bean" */ public class ReceiverBean implements SessionBean, DOMSource { // ------------------------------------------------------------------------- // EJB Methods // ------------------------------------------------------------------------- private SessionContext sessionContext; public void ejbCreate() throws CreateException { } public void ejbRemove() { } public void ejbActivate() { } public void ejbPassivate() { } public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } // ------------------------------------------------------------------------- // DomListener method // ------------------------------------------------------------------------- /** * The method that the sender uses to pass the Document over * * @param Document incomingDocument * * @throws RemoteException * @throws XbeansException * * @ejb:interface-method view-type="remote" */ public void documentReady(Document incomingDocument) throws RemoteException, XbeansException { if (DOMListener == null) { try { if (channelBean == null) { String cBean = (String) new javax.naming.InitialContext().lookup("java:comp/env/channelBean"); if (cBean == null) { throw new Exception(); } else { this.setChannelBean( cBean ); } } } catch (Exception e) { throw new XbeansException(incomingDocument.getNodeName(), "ejb receiver", "next component not established", "The component needs to be configured."); } try { this.setDOMListener( (DOMListener) Class.forName( channelBean ).newInstance() ); } catch (Exception e) { throw new XbeansException(incomingDocument.getNodeName(), "ejb receiver", "could not create the channelBean: " + channelBean + " " + e, "The component needs to be configured correctly (channelBean)."); } } DOMListener.documentReady(new DOMEvent(this, incomingDocument)); } // ------------------------------------------------------------------------- // DomSource methods // ------------------------------------------------------------------------- private DOMListener DOMListener; /** * Set the DOMListener (usually worked out from the channelBean property) * * @param newDomListener */ public void setDOMListener(DOMListener newDomListener) { DOMListener = newDomListener; } /** * Retrieve the DOMListener * * @return DOMListener */ public DOMListener getDOMListener() { return DOMListener; } // ------------------------------------------------------------------------- // Channel Bean: This is configured in the <env-entry> // in the ejb-jar.xml deployment descriptor // ------------------------------------------------------------------------- private String channelBean; /** * Set the channel bean to keep the chain going * * @param newChannelBean */ public void setChannelBean(String newChannelBean) { channelBean = newChannelBean; } /** * Retrieve the channel bean name * * @return String */ public String getChannelBean() { return channelBean; } }