[Anthill] Hibernate SchemaExport task fails under Anthill...

Mark Derricutt mark at talios.com
Wed Feb 9 22:00:35 CST 2005


Hi all, we seem to have hit an odd problem with Anthill,

We've recently started using Hibernate in some of our applications and 
are noticing that the schema-export task fails under Anthill.

It works fine running Ant directly on every machine in the office, but 
on two different installs of Anthill, it fails:

export-schema:
     [echo] Exporting DB schema to db/schema-v0.1.4.sql
[schemaexport] log4j:ERROR setFile(null,false) call failed.
[schemaexport] java.io.FileNotFoundException: build/test.log (No such file or directory)
[schemaexport] 	at java.io.FileOutputStream.open(Native Method)
[schemaexport] 	at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
[schemaexport] 	at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
[schemaexport] 	at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
[schemaexport] 	at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:156)
[schemaexport] 	at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
[schemaexport] 	at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:210)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:140)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:153)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:415)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:384)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:783)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:666)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:616)
[schemaexport] 	at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:602)
[schemaexport] 	at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:460)
[schemaexport] 	at org.apache.log4j.LogManager.<clinit>(LogManager.java:113)
[schemaexport] 	at org.apache.log4j.Logger.getLogger(Logger.java:85)
[schemaexport] 	at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:229)
[schemaexport] 	at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:65)
[schemaexport] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[schemaexport] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[schemaexport] 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
[schemaexport] 	at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
[schemaexport] 	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
[schemaexport] 	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
[schemaexport] 	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
[schemaexport] 	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
[schemaexport] 	at net.sf.hibernate.cfg.Configuration.<clinit>(Configuration.java:94)
[schemaexport] 	at net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.getConfiguration(SchemaExportTask.java:182)
[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.Main.start(Main.java:151)
[schemaexport] 	at org.apache.tools.ant.Main.main(Main.java:241)
[schemaexport] 11:49:21,198 ERROR [SchemaExport] schema export unsuccessful
[schemaexport] java.io.FileNotFoundException: db/schema-v0.1.4.sql (No such file or directory)
[schemaexport] 	at java.io.FileOutputStream.open(Native Method)
[schemaexport] 	at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
[schemaexport] 	at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
[schemaexport] 	at java.io.FileWriter.<init>(FileWriter.java:46)
[schemaexport] 	at net.sf.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:113)
[schemaexport] 	at net.sf.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:84)
[schemaexport] 	at net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.execute(SchemaExportTask.java:142)
[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.Main.start(Main.java:151)
[schemaexport] 	at org.apache.tools.ant.Main.main(Main.java:241)

The ant script includes:

    <!-- Exports DB schema to a file -->
    <target name="export-schema" depends="generate-hibernate"
              description="Exports DB schema to a file">

        <!-- Teach Ant how to use Hibernate's schema generation tool -->
        <taskdef name="schemaexport"
            classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
            classpathref="classpath">
            <classpath path="${build.classes}"/>
        </taskdef>

        <echo message="Exporting DB schema to ${db.dir}/schema-${version}.sql"/>
        <schemaexport properties="${build.classes}/hibernate.properties"
                quiet="yes" text="yes" drop="no" output="${db.dir}/schema-${version}.sql" >
            <fileset dir="${build.classes}">
                <include name="**/*.hbm.xml"/>
            </fileset>
        </schemaexport>
    </target>

Has anyone seen this at all?  I was thinking it might be related to class loaders, or the way Anthill calls ant...

Thanks in advance,
Mark





More information about the Anthill mailing list