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;
}
}