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 &lt;env-entry&gt;
  //                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;
  }

}

Reply via email to