O Victor tem razão, o problema que a SubTask de geração dos schemas do Hibernate, exige que os arquivos hbm estejam no classpath, independente de ser ou não no mesmo diretorio das .class, o que geralmente não é um boa coisa quando se leva em conta boas práticas de organização do código de um projeto. Como pude perceber suas classes estão num diretório <classes.dir> enquanto os hbm estão no diretorio <gen.src.dir>. Experimente colocar um classpath personalizado na TARGET <gerenerateS>, assim:
 
 <target name="generateS" depends="generateH">
  <taskdef
   name="schemaexport"
   classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask">
   <classpath>
    <!-- diretorio das classes compiladas -->
    <pathelement location="${class.dir}" />
    <!-- diretorio dos hbm -->
    <pathelement location="${gen.src.dir}" />
    <!-- classpath das bibliotecas do hibernate -->
    <path refid="xdoclet.lib" />
   </classpath>

  </taskdef>
  <schemaexport
   properties="hibernate.properties"
   quiet="no"
   text="no"
   d rop="no"
   output="${sql.file}">
   <fileset dir="${gen.src.dir}">
    <include name="**/*.hbm.xml" />
   </fileset>
  </schemaexport>
 </target>

Boa sorte!
 
Hudson Ferreira Leite

victor sosa <[EMAIL PROTECTED]> wrote:
put your *.class and *.hbm.xml in the same dir

{class.dir}
       |------*.class
       |------*.hbm.xml

si hablaras español me seria más comodo ayudarte :-)

Moacir Cardoso wrote:

When I try to run ant I receive this error

 

 

D:\Projetos\xml\teste1>ant generateS
Buildfile: build.xml

 

init:
     [echo] INICIALIZACAO:

 

prepare:
     [echo] PREPARACAO:

 

generateH:
[hibernatedoclet] Gerando mapeamentos do Hibernate para T1
[hibernatedoclet]    T1

 

generateS:
[schemaexport] 11:13:02,437 ERROR Configuration:255 - Could not compile the mapping document
[schemaexport] net.sf.hibernate.MappingException: persistent class [T1] not found
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:85)
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:222)
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1257)
[schemaexport]  at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
[schemaexport]  at net.sf.hibernate.cfg.Configuration.addFile(Configuration.java:174)
[schemaexport]  at net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.getConfiguration(SchemaExportTask.java:195)
[schemaexport]  at net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.execute(SchemaExportTask.java:135)
[schemaexport]&nbs p; at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[schemaexport]  at org.apache.tools.ant.Task.perform(Task.java:364)
[schemaexport]  at org.apache.tools.ant.Target.execute(Target.java:341)
[schemaexport]  at org.apache.tools.ant.Target.performTasks(Target.java:369)
[schemaexport]  at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
[schemaexport]  at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
[schemaexport]  at org.apache.tools.ant.Main.runBuild(Main.java:673)
[schemaexport]  at org.apache.tools.ant.Main.startAnt(Main.java:188)
[schemaexport]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
[schemaexport]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)
[schemaexport] Caused by: java.lang.ClassNotFoundException: T1
[schemaexport]  at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1149)
[schemaexport]  at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1090)
[schemaexport]  at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:960)
[schemaexport]  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[schemaexport]  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
[schemaexport]  at java.lang.Class.forName0(Native Method)
[schemaexport]  at java.lang.Class.forName(Class.java:164)
[schemaexport]  at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:102)
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:82)
[schemaexport]  ... 16 more
[schemaexport] 11:13:02,500 ERROR Configuration:178 - Could not configure datastore from file: D:\projetos\xml\teste1\hb
m\T1.hbm.xml
[schemaexport] net.sf.hibernate.MappingExcep tion: persistent class [T1] not found
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:85)
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:222)
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1257)
[schemaexport]  at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
[schemaexport]  at net.sf.hibernate.cfg.Configuration.addFile(Configuration.java:174)
[schemaexport]  at net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.getConfiguration(SchemaExportTask.java:195)
[schemaexport]  at net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.execute(SchemaExportTask.java:135)
[schemaexport]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[schemaexport]  at org.apache.tools.ant.Task.perform(Task.java:364)
[schemaexport]  at org.apache.tools.ant.Target.execute(Target.java:341)
[schemaexport]  at org.apache.tools.ant.Target.performTasks(Target.java:369)
[schemaexport]  at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
[schemaexport]  at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
[schemaexport]  at org.apache.tools.ant.Main.runBuild(Main.java:673)
[schemaexport]  at org.apache.tools.ant.Main.startAnt(Main.java:188)
[schemaexport]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
[schemaexport]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)
[schemaexport] Caused by: java.lang.ClassNotFoundException: T1
[schemaexport]  at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1149)
[schemaexport]  at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1090)
[schemaexport]  at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:960)
[schemaexport]  at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[schemaexport]  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
[schemaexport]  at java.lang.Class.forName0(Native Method)
[schemaexport]  at java.lang.Class.forName(Class.java:164)
[schemaexport]  at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:102)
[schemaexport]  at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:82)
[schemaexport]  ...
16 more

 

BUILD FAILED
D:\Projetos\xml\teste1\build.xml:129: Schema text failed: net.sf.hibernate.MappingException: persistent class [T1] not f
ound

 

Total time: 7 seconds

 

 

 

This is my build.xml file

 

 

 

<?xml version="1.0"?>

 

<project name="teste1" default="start" basedir="d:\projetos\xml\teste1">

 

 

    <target name="init">

        <echo message="INICIALIZACAO:"/>

        <property name="src.dir" value="src"/>

        <property name="class.dir" value="classes"/>

        <property name="jar.dir" value="jar"/>

        <property name="sql.dir" value="sql"/>

        <property name="gen.src.dir" value="hbm"/>

 

        <property name="classe.principal" value="T1"/>

 

        <property name="jar.file" value="testeJar.jar"/>

        <property name="sql.file" value="${sql.dir}\t1.sql"/>

 

    </target>

 

 

    <target name="prepare" depends="init">

        <echo message="PREPARACAO:"/>

        <mkdir dir="${src.dir}"/>

        <mkdir dir="${class.dir}"/>

        <mkdir dir="${sql.dir}"/>

        <mkdir dir="${jar.dir}"/>

        <mkdir dir="${gen.src.dir}"/>

    </target>

 

 

    <target name="compile" depends="prepare">

        <echo message="COMPILACAO:"/>

        <javac srcdir="${src.dir}" destDir="${class.dir}"/>

    </target>

 

 

    <target name="jar" depends="compile">

        <echo message="COMPACTACAO:"/>

 

        <jar destfile="${jar.dir}\${jar.file}">

            <fileset dir="${class.dir}">

                <include name="**/*.class"/>

            </fileset>

 

            <manifest>

                <attribute name="Main-Class" value="${classe.principal}"/>

            </manifest>

        </jar>

    </target>

 

 

    <target name="clean" depends="prepare">

        <echo>LIMPEZA:</echo>

        <echo message="Deletando: ${class.dir}"/>

        <deltree dir="${class.dir}"/>

        <echo message="Deletando: ${sql.dir}"/>

        <deltree dir="${sql.dir}"/>

        <echo message="Deletando: ${jar.dir}"/>

        <deltree dir="${jar.dir}"/>

        <echo message="Deletando: ${gen.src.dir}"/>

        <deltree dir="${gen.src.dir}"/>

    </target>

 

 

    <target name="start" depends="jar">

        <echo message="EXECUCAO:"/>

        <java jar="${jar.dir}/${jar.file}" fork="true"/>

    </target>

 

 

<!-- XDOCLET -->

 

 

    <path id="xdoclet.lib">

        <fileset dir="c:\xdoclet\lib">

            <include name="**/*.jar"/>

        </fileset>

       

        <fileset dir="c:\hibernate">

            <include name="**/*.jar"/>

        </fileset>

 

        <pathelement path="${java.class.path}"/>

        <pathelement location="c:\xdoclet\lib\commons-collections-2.0.jar"/>

    </path>

 

 

    <target name="generateH" depends="prepare">

 

        <taskdef

            name="hibernatedoclet"

            classname="xdoclet.modules.hibernate.HibernateDocletTask"

            classpathref="xdoclet.lib"/>

 

 

        <hibernatedoclet

            destDir="${gen.src.dir}"

            excludedtags="@version,@author,@todo"

            force="true"

            verbose="true">

 

            <fileset dir="${src.dir}">

                <include name="**/*.java"/>

            </fileset>

 

             <hibernate version="2.0"/>

        </hibernatedoclet>

 

    </target>

 

 

    <target name="generateS" depends="generateH">

 

        <taskdef

            name="schemaexport"

            classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"

            classpathref="xdoclet.lib"/>

 

        <schemaexport

            properties="hibernate.properties"

            quiet="no"

            text="no"

            drop="no"

            output="${sql.file}">

 

            <fileset dir="${gen.src.dir}">

                <include name="**/*.hbm.xml"/>

            </fileset>

 

        </schemaexport>

 

    </target>

 

</project>


__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger
http://br.download.yahoo.com/messenger/

Reply via email to