Matthew Excell writes:
> Cleber,
>
> In your ant task, inside the ejbdoclet section, do you have a jboss
> section that is set-up similar to the following:
>
> <jboss
> version="3.0"
> unauthenticatedPrincipal="nobody"
> xmlencoding="UTF-8"
> destdir="${metainf.dir}"
> validatexml="true"
> preferredrelationmapping="relation-table"
> datasource="java:/WiaDS"
> datasourcemapping="PostgreSQL 7.2"
> mergeDir="${src.dir}/merge/ejb"
> />
>
> We use XDoclet and JBoss on the vast majority of our J2EE projects. (I
> personally am currently working as architect on three projects with over
> 200 entities and it works wonderfully!)
>
> Could you post the section of your build.xml that deals with ejbdoclet?
>
> Are any jboss files being generated at all?
>
>
> --
> Matthew Excell
> Senior Consultant - The Possibility Forge, Inc.
>
>
> PS. Estou com saldade de S�o Paulo!
Ok, That's all my build.xml:
<?xml version="1.0"?>
<project name="XDoclet" default="main" basedir="..">
<!-- Set up java.class.path -->
<path id="project.class.path">
<!-- LOG4J properties -->
<pathelement path="${basedir}\script" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
<!-- append the external classpath lastly -->
<pathelement path="${java.class.path};gensrc/java/tci/interfaces/*.java" />
</path>
<!-- Init -->
<target name="init">
<property name="empresa" value="tci"/>
<property name="lib.dir" value="lib" />
<property name="xdoclet.jar.path" value="${basedir}/lib/xdoclet.jar" />
<property name="log4j.jar.path" value="lib/log4j.jar" />
<property name="log4j.path" value="${basedir}/script" />
<property name="ant.jar.path" value="lib/ant.jar" />
<property name="Name" value="Samples" />
<property name="name" value="samples" />
<property name="src.dir" value="src" />
<property name="generated.src.dir" value="gensrc" />
<property name="web.dir" value="${src.dir}/web" />
<property name="java.dir" value="${src.dir}/java" />
<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="jikes" />
<property name="classpath" value="" />
<property name="ejb.dir" value="${build.dir}/ejb"/>
<property name="ejb.classes.dir" value="${ejb.dir}/classes"/>
<property name="ejb.dd.dir" value="${ejb.dir}/META-INF"/>
<property name="ejb.generic.dir" value="${ejb.dir}/generic-ejb"/>
<property name="ejb.generic.file"
value="${ejb.generic.dir}/${name}-ejb.jar"/>
<property name="ejb.weblogic.dir" value="${ejb.dir}/weblogic-ejb"/>
<property name="ejb.weblogic.file"
value="${ejb.weblogic.dir}/${name}-ejb.jar"/>
<!-- These are here to test the use of properties in @tags -->
<property name="jboss.create.table" value="true" />
<property name="jboss.remove.table" value="true" />
<property name="jboss.tuned.updates" value="true" />
<property name="jboss.read.only" value="false" />
</target>
<!-- Prepare -->
<target name="prepare" depends="init">
<mkdir dir="${build.dir}" />
<mkdir dir="${generated.java.dir}/${empresa}" />
<mkdir dir="${generated.java.dir}/${empresa}/ejb" />
<mkdir dir="${build.dir}/ejb" />
<mkdir dir="${build.dir}/ejb/META-INF" />
<mkdir dir="${build.dir}/web" />
<mkdir dir="${build.dir}/web/WEB-INF" />
<mkdir dir="${build.dir}/web/WEB-INF/tlds" />
<mkdir dir="${build.dir}/web/WEB-INF/classes" />
<mkdir dir="${build.dir}/j2ee" />
<mkdir dir="${build.dir}/j2ee/META-INF" />
<mkdir dir="${build.dir}/jmx" />
<mkdir dir="${dist.dir}" />
<mkdir dir="${generated.src.dir}" />
<mkdir dir="${generated.java.dir}" />
<mkdir dir="${ejb.dd.dir}"/>
<mkdir dir="${ejb.classes.dir}"/>
<mkdir dir="${ejb.generic.dir}"/>
<mkdir dir="${ejb.weblogic.dir}"/>
</target>
<!-- Run EJBDoclet -->
<target name="ejbdoclet" depends="prepare">
<taskdef name="ejbdoclet"
classname="xdoclet.ejb.EjbDocletTask"
classpath="${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path}"
/>
<ejbdoclet
sourcepath="${java.dir};${log4j.path}"
destdir="${generated.java.dir}"
classpathref="project.class.path"
excludedtags="@version,@author"
ejbspec="2.0"
force="${xdoclet.force}">
<!--
It's good practice to put interfaces in a separate "interfaces"
package than in EJB bean implementations, but if you don't like it
or want to apply another package naming convention, just remove the
following like add as many <packageSubstitution/> as you want to
configure it.
-->
<packageSubstitution packages="ejb" substituteWith="interfaces"/>
<fileset dir="${java.dir}">
<include name="${empresa}/**/*Bean.java" />
</fileset>
<remoteinterface/>
<localinterface/>
<homeinterface />
<localhomeinterface/>
<entitypk/>
<deploymentdescriptor destdir="${ejb.dd.dir}" validatexml="true" />
<jboss
version="3.0"
xmlencoding="UTF-8"
destdir="${ejb.dd.dir}"
validatexml="false"
typemapping="mySQL"
datasource="java:/MySqlDS"
/>
<!--
Have struts form objects generated based on entity beans'
data objects. Will require struts.jar to compile. -->
<strutsform />
<!--
Have a mapping.xml file generated for castor classes.
-->
<castormapping destdir="${build.dir}/ejb/classes" validatexml="false" />
<!-- -->
</ejbdoclet>
</target>
<!-- Run WebDoclet -->
<target name="webdoclet" depends="prepare">
<taskdef name="webdoclet"
classname="xdoclet.web.WebDocletTask"
classpath="${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path}"
/>
<webdoclet
sourcepath="${java.dir}"
destdir="${generated.java.dir}"
classpathref="project.class.path"
force="${xdoclet.force}">
<fileset dir="${java.dir}">
<include name="**/*Servlet.java" />
<include name="**/*Filter.java" />
<include name="**/*Tag.java" />
<include name="**/*Action.java" />
</fileset>
<deploymentdescriptor servletspec="2.3" destdir="${build.dir}/web/WEB-INF" >
<taglib uri="http://java.sun.com/jstl/ea/core" location="/WEB-INF/c.tld" />
</deploymentdescriptor>
<jsptaglib jspversion="1.2" destdir="${build.dir}/web/WEB-INF/tlds"
shortname="j2ee" validateXml="false"
/>
<!-- -->
<jbosswebxml destdir="${build.dir}/web/WEB-INF" />
<jrunwebxml destdir="${build.dir}/web/WEB-INF" mergedir="${src.dir}" />
<!-- -->
<!-- generate WebWork stuff, uncomment it if you want to run it.
-->
<webWorkConfigProperties />
<webWorkActionDocs javadocdir="api" mergedir="${src.dir}"/>
</webdoclet>
</target>
<target name="jmxdoclet" depends="prepare">
<taskdef name="jmxdoclet"
classname="xdoclet.jmx.JMXDocletTask"
classpath="${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path}"
/>
<jmxdoclet
sourcepath="${java.dir}"
destdir="${generated.java.dir}"
classpathref="project.class.path"
force="${xdoclet.force}">
<fileset dir="${java.dir}">
<include name="${empresa}/jmx/**/*.java" />
</fileset>
<!-- Create the {0}MBean interface for the MBean -->
<mbeaninterface mergedir="${src.dir}"/>
<!-- Create the OpenJMX specific description adaptor class for the MBean -->
<openjmxDescription />
<!--create the jbossmx xml descriptor for the mbean-->
<jbossxmbean/>
<!--create the jboss xml service template for the mbean-->
<jbossXmlServiceTemplate/>
</jmxdoclet>
</target>
<!-- Compile -->
<!--target name="compile" depends="compile-ejbs,webdoclet,jmxdoclet"-->
<target name="compile" depends="compile-ejbs">
<!-- Compile web classes -->
<echo message="Compilando - srcdir:
${java.dir};${generated.java.dir}/**/*.java"/>
<echo message="Compilando - includes: ${empresa}/web/*.java"/>
<echo message="destdir: ${empresa}/web/*.java"/>
<javac srcdir="${java.dir};${generated.java.dir}/**/*.java"
destdir="${build.dir}/web/WEB-INF/classes"
includes="${empresa}/web/*.java"
debug="on">
<classpath refid="project.class.path" />
</javac>
<javac srcdir="${java.dir};${generated.java.dir}"
destdir="${build.dir}/jmx"
includes="${empresa}/jmx/*.java"
debug="on">
<classpath refid="project.class.path" />
</javac>
</target>
<target name="compile-ejbs" depends="ejbdoclet">
<!-- Compile EJBs -->
<echo message="Compilando (srcdir): ${java.dir};${generated.java.dir}"/>
<echo message="Compilando (includes):
${empresa}/ejb/*.java,${empresa}/interfaces/*.java,${empresa}/struts/*.java,${empresa}/ejb/cmr/*.java,${empresa}/dao/*.java"/>
<echo message="destdir: ${ejb.classes.dir}"/>
<javac srcdir="${java.dir};${generated.java.dir}"
destdir="${ejb.classes.dir}"
includes="${empresa}/ejb/*.java,${empresa}/interfaces/*.java,${empresa}/struts/*.java,${empresa}/ejb/cmr/*.java,${empresa}/dao/*.java"
debug="on">
<classpath refid="project.class.path" />
</javac>
</target>
<!-- Create EJB-JAR file -->
<target name="ejb-jar" depends="compile-ejbs">
<jar jarfile="${ejb.generic.file}">
<fileset dir="${ejb.classes.dir}" />
<fileset dir="${ejb.dir}" includes="META-INF/**" />
</jar>
</target>
<target name="weblogic-ejb-jar" depends="ejb-jar">
<java classname="weblogic.ejbc20" fork="yes">
<arg value="${ejb.generic.file}"/>
<arg value="${ejb.weblogic.file}"/>
</java>
</target>
<!-- Create WAR file -->
<target name="web-war" depends="compile">
<!-- Copy JSPs -->
<copy todir="${build.dir}/web">
<fileset dir="${web.dir}"/>
</copy>
<!-- create WAR file -->
<jar jarfile="${build.dir}/j2ee/${name}-web.war" basedir="${build.dir}/web"/>
</target>
<!-- Create EAR file -->
<target name="j2ee-ear" depends="web-war,ejb-jar,appxml">
<!-- Copy EAR file -->
<jar jarfile="${dist.dir}/${name}.ear">
<fileset dir="${build.dir}/j2ee" />
<fileset dir="${ejb.generic.dir}" />
</jar>
</target>
<!-- Deploy to ... -->
<target name="deploy" depends="j2ee-ear">
</target>
<!-- Clean everything -->
<target name="clean" depends="init">
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
<delete dir="${generated.src.dir}" />
</target>
<target name="clean-build" depends="clean, main" />
<!-- Main -->
<target name="main" depends="deploy" />
<!-- ========================================= -->
<!-- verify ejb-jar files using jboss verifier -->
<!-- ========================================= -->
<target name="verify" depends="ejb-jar">
<java classname = "org.jboss.verifier.Main" fork="true" failonerror="true">
<classpath refid = "project.class.path"/>
<arg value = "${build.dir}/j2ee/${name}-ejb.jar"/>
</java>
</target>
<!-- ========================================= -->
<!-- generate todo-list from on @todo tags -->
<!-- ========================================= -->
<target name="todo" depends="init">
<taskdef
name="document"
classname="xdoclet.doc.DocumentDocletTask"
classpath="${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path}"
/>
<document
sourcepath="${src.dir}"
destdir="${build.dir}/todo"
classpath="${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path};${java.class.path}"
>
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
<info
header="Todo list"
projectname="${Name}"
tag="todo"
/>
</document>
</target>
<!-- ================================================= -->
<!-- Example usage of the AntPropertyTask Creates an -->
<!-- application.xml file from a template and replaces -->
<!-- all occurrences of -->
<!-- <XDtAnt:property name="some.ant.property"/> -->
<!-- with the specified ant property. -->
<!-- ================================================= -->
<target name="appxml" depends="init">
<property name="app.display.name" value="Samples"/>
<property name="app.description" value="Sample application for XDoclet"/>
<property name="app.ejbjar.name" value="samples-ejb.jar"/>
<property name="app.war.name" value="samples-web.war"/>
<property name="app.contextroot" value="/samples"/>
<taskdef
name="replacecopy"
classname="xdoclet.ant.ReplaceCopy"
classpath="${xdoclet.jar.path};${log4j.jar.path};${ant.jar.path}"
/>
<replacecopy
file="config/application/application.xml"
todir="${build.dir}/j2ee/META-INF"
/>
</target>
</project>
That's is all mey Bean:
package tci.ejb;
import tci.interfaces.ItemTransferPK;
import tci.interfaces.ItemTransfer;
import java.sql.Date;
import java.util.*;
import java.math.*;
import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.FinderException;
import javax.ejb.RemoveException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
/**
* Entity bean que representa Item
*
* @author Cleber Miranda Barboza
* @version $Revision: 1.0 $
*
* @ejb.bean
* name="ItemTransfer"
* display-name="Item Relacionado aos Contratos"
* type="CMP"
* local-jndi-name="ItemTransferLocalHome"
* view-type="local"
*
* @ejb.transaction type="Required"
*
* @ejb.finder signature="java.util.Collection findAll()"
*
* @ejb.finder
* signature="tci.interfaces.ItemTransferLocal findByItem(java.lang.String codEmpresa,
java.lang.String codItem)"
* unchecked="true"
* query="SELECT OBJECT(p) FROM ItemTransfer AS p WHERE p.codEmpresa=?1 AND
p.codItem=?2"
* view-type="local"
*
*
* @ejb.persistence table-name="fat_ctr_rems_446"
*
*
**/
public abstract class ItemTransferBean implements EntityBean
{
// -------------------------------------------------------------------------
// Membros
// -------------------------------------------------------------------------
public EntityContext mContext;
// -------------------------------------------------------------------------
// Metodos
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
// (Getters/Setters)
// -------------------------------------------------------------------------
/**
* @return Retorna um Inteiro representando o id
*
* @ejb:persistent-field
* @ejb.pk
*
* @jboss:column-name id
* @jboss:sql-type CHAR(15)
* @jboss:jdbc-type CHAR(15)
*
*/
public abstract String getId();
/**
* Id of this account.
*
*/
public abstract void setId( String id );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
* @ejb.pk
*
* @jboss:column-name "empresa"
* @jboss:sql-type CHAR(2)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getCodEmpresa();
/**
* @param codEmpresa
**/
public abstract void setCodEmpresa( String codEmpresa );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "secao"
* @jboss:sql-type CHAR(10)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getSecao();
/**
* @param secao
**/
public abstract void setSecao( String secao );
/**
* @return Retorna uma Integer
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "ordem_producao"
* @jboss:sql-type INTEGER(4)
* @jboss:jdbc-type INTEGER
*
**/
public abstract Integer getOrdemProducao();
/**
* @param ordemProducao
**/
public abstract void setOrdemProducao( Integer ordemProducao );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "item"
* @jboss:sql-type CHAR(15)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getItem();
/**
* @param itemm
**/
public abstract void setItem( String itemm );
/**
* @return Retorna uma BigDecimal
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "pedido"
* @jboss:sql-type DECIMAL(6)
* @jboss:jdbc-type DECIMAL
*
**/
public abstract BigDecimal getPedido();
/**
* @param pedido
**/
public abstract void setPedido( BigDecimal pedido );
/**
* @return Retorna uma Decimal
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "qtd_remessa"
* @jboss:sql-type DECIMAL(10,3)
* @jboss:jdbc-type DECIMAL
*
**/
public abstract BigDecimal getQtdRemessa();
/**
* @param qtdRemessa
**/
public abstract void setQtdRemessa( BigDecimal qtdRemessa );
/**
* @return Retorna uma Date
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "dat_remessa"
* @jboss:sql-type DATE
* @jboss:jdbc-type DATE
*
**/
public abstract Date getDatRemessa();
/**
* @param datRemessa
**/
public abstract void setDatRemessa( Date datRemessa );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "hor_remessa"
* @jboss:sql-type CHAR(5)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getHorRemessa();
/**
* @param horRemessa
**/
public abstract void setHorRemessa( String horRemessa );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "eqpto"
* @jboss:sql-type CHAR(15)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getEqpto();
/**
* @param eqpto
**/
public abstract void setEqpto( String eqpto );
/**
* @return Retorna um String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "lacre"
* @jboss:sql-type CHAR(15)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getLacre();
/**
* @param lacre
**/
public abstract void setLacre( String lacre );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "motorista"
* @jboss:sql-type CHAR(15)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getMotorista();
/**
* @param motorista
**/
public abstract void setMotorista( String Motorista );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "usuario"
* @jboss:sql-type CHAR(8)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getUsuario();
/**
* @param usuario
**/
public abstract void setUsuario( String usuario );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "confirmado"
* @jboss:sql-type CHAR(1)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getConfirmado();
/**
* @param confirmado
**/
public abstract void setConfirmado( String confirmado );
/**
* @return Retorna uma String
*
* @ejb.persistent-field
* @ejb.interface-method view-type="local"
*
* @jboss:column-name "item_bomba"
* @jboss:sql-type CHAR(15)
* @jboss:jdbc-type CHAR
*
**/
public abstract String getItemBomba();
/**
* @param itemBomba
**/
public abstract void setItemBomba( String itemBomba );
// -------------------------------------------------------------------------
// Framework Callbacks
// -------------------------------------------------------------------------
/**
*
* @ejb:create-method view-type="local"
**/
public ItemTransferPK ejbCreate( String id )
throws
EJBException,
CreateException
{
setId( id );
return null;
}
public void setEntityContext( EntityContext lContext )
{
mContext = lContext;
}
public void unsetEntityContext()
{
mContext = null;
}
public void ejbActivate()
{
}
public void ejbPassivate()
{
}
public void ejbLoad()
{
}
public void ejbStore()
{
}
public void ejbRemove() throws
RemoveException
{
}
public void ejbPostCreate( String id ) throws CreateException {
// initialize any relationships here.
try {
}
catch (Exception e) {
mContext.setRollbackOnly();
throw new CreateException( "Erro Criando Item: " + e.getMessage());
}
}
}
Xdoclet gernerates the follow files: ejb-jar.xml jaws.xml jbosscmp-jdbc.xml
jboss.xml
But neither of them has the <table-name>fat_ctr_rems_446</table-name> tag, which is
necessary for Jboss
identify the table at database !
[]'s
--
Cleber Miranda Barboza.
I'm a Computer Science student at University of S�o Paulo (USP).
email: [EMAIL PROTECTED]
home page: http://www.linux.ime.usp.br/~cleberc
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user