1

My project setup is Hibernate 3.2.5,MySQL,Spring MVC, NetBeans Apache 7.xx


I'm not getting any errors during build & run.

Trying to generate SQL DDL scripts from annotation beans via Ant task, however I'm getting the following error:

Reference C:/cmgr/build/web/WEB-INF/lib/hibernate-tools.jar not found.

However when I check the path the hibernate-tools.jar is present.


Ant taskdef section that's causing the error:

<taskdef
    name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask"
    classpathref="C:/cmgr/build/web/WEB-INF/lib/hibernate-tools.jar">

hibernate_ddl.xml (Entire Ant file)

    <?xml version="1.0" encoding="UTF-8"?>
<project name="yourmarketnet" default="all" basedir=".">
    <property name="build.dir" value="C:/cmgr/build" />
    <property name="src.dir" value="C:/cmgr/src/java" />
    <target name ="ddl_generation">
<!-- paths to required jars  -->
        <path id="toolslib">
            <path location="${build.dir}/web/WEB-INF/lib/hibernate-annotations.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/hibernate-commons-annotations.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/dom4j-1.6.1.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/org-apache-commons-logging.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/hibernate-entitymanager.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/hibernate-tools.jar"/>
            <path location="${build.dir}/web/WEB-INF/lib/hibernate-entitymanager.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/javaassist.jar" />
            <path location="${build.dir}/web/WEB-INF/lib/hibernate-tools.jar"/>
            <path location="${build.dir}/web/WEB-INF/lib/hibernate3.jar"/>
            <path location="${build.dir}/web/WEB-INF/lib/freemarker-2.3.4.jar"/>
            <path location="${build.dir}/web/WEB-INF/lib/ejb3-persistence.jar" />
        <!-- JDBC DRIVER PATH mysql-connector-java-5.1.20-bin.jar--> 
            <path location="${build.dir}/web/WEB-INF/lib/mysql-connector-java-5.1.20-bin.jar"/>
        </path>
         <!-- taskdef -->
        <taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="C:/cmgr/build/web/WEB-INF/lib/hibernate-tools.jar">
             <!--  path to annotation beans --> 
            <classpath>
                <pathelement path="${build.dir}/web/WEB-INF/classes/com/cmgr/beans" />
            </classpath> 
        </taskdef>
<!-- output DDL script destination -->
        <hibernatetool destdir="${src.dir}">
            <!-- path to hibernate.cfg.xml -->
            <AnnotationConfiguration configurationfile="${src.dir}/resources/hibernate.cfg.xml"/>
<!-- list exporters here -->
            <hbm2ddl
                export="false"
                update="false"
                drop="true"
                create="true"
                outputfilename="${src.dir}/resources/myApps.ddl"
                delimiter=";"
                format="false"
                haltonerror="true"/>
        </hibernatetool>
    </target>
</project>

Can someone be kind enough to suggest a working solution given my project setup?

martin clayton
  • 76,436
  • 32
  • 213
  • 198
cyber101
  • 2,822
  • 14
  • 50
  • 93

1 Answers1

0

You want the Ant taskdef task classpath parameter rather than classpathref. The ref paramater is for passing in an Ant reference id defined elsewhere rather than a filesystem path.

That is:

<taskdef
    name="hibernatetool"
    classname="org.hibernate.tool.ant.HibernateToolTask"
    classpath="C:/cmgr/build/web/WEB-INF/lib/hibernate-tools.jar">
martin clayton
  • 76,436
  • 32
  • 213
  • 198
  • Thanks,I changed the the property to classpath now Im getting an error : java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration , however the hibernate.cfg.xml file is actually in the specified path – cyber101 Sep 01 '12 at 01:44