Hi:
The target I'm using within Ant is below. Unfortunately, the fork attribute is
not allowed within taskdef elements. Also, I did check for other instances of
the org.apache.commons.logging.Log class within every jar in my classpath;
there happens to be one in Ant's lib (which is not in my classpath), but even
when I removed that, I received the same error.
As I said before, if I remove the commons-logging package, then I get a
NoClassDefFoundError, so if there were another instance of the class, why
would I get this error?
<target name="schema" depends="init">
<taskdef name="schemaexport"
classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
classpath="${java.class.path}:${src.conf}" />
<schemaexport
properties="${src.conf}/hibernate.cfg.xml"
quiet="no"
text="no"
drop="no"
delimiter=";"
output="schema-export.sql">
<fileset dir="${src.conf}">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaexport>
</target>
I am using a script that I wrote to check every Jar in the classpath for the
Log class, and the only one that shows up is in the commons logging package.
If you wish to see the script, I can post it in another email.
Thanks,
Brian
On Tuesday 24 August 2004 03:34 am, you wrote:
> On Mon, 23 Aug 2004 13:16:57 -0400, Brian Lee Yung Rowe
>
> <[EMAIL PROTECTED]> wrote:
> > Hi:
> >
> > I'm using commons logging with Ant and Hibernate and am getting a class
> > loader error which has me scratching my head. I'm sending to this list as
> > I believe it to be a configuration issue with Logging as opposed to
> > Hibernate. Evidence otherwise is certainly welcome.
> >
> > First some background: I'm trying to run Hibernate's schema export
> > taskdef via Ant. The versions of salient libraries are below:
> >
> > Ant 1.6.1
> > Commons-Logging 1.0.4
> > Log4J 1.2.8
> > Hibernate 2.1
> >
> > This is the error I'm getting:
> > --- Nested Exception ---
> > java.lang.ExceptionInInitializerError
> > at
> > net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.getConfiguration(SchemaExp
> >ortTask.java:182) at
> > net.sf.hibernate.tool.hbm2ddl.SchemaExportTask.execute(SchemaExportTask.j
> >ava:135) ....
> > Caused by: org.apache.commons.logging.LogConfigurationException:
> > org.apache.commons.logging.LogConfigurationException: Invalid class
> > loader hierarchy. You have more than one version of
> > 'org.apache.commons.logging.Log' visible, which is not allowed.
>
> This message means what it says.
>
> If you have more than one version of org.apache.commons.logging.Log
> visible in the class path, you are pretty much guaranteed to have
> class loading issues, so the Commons Logging code tries to identify
> and catch this case as early as possible.
>
> When using Ant, I've found that it is almost always necessary to use a
> separate process for the actual application you are trying to run
> (such as using fork="true" on a <java> task), to avoid conficts
> between Ant's internal class loader (which includes, for example,
> everything in $ANT_HOME/lib) and the class path you have specified for
> that particular target.
>
> But there's no way to know what is actually going on for you, without
> more details about the Ant targets you are trying to execute.
>
> Craig
--
"to disappear in the minds of others is inevitable"
mux space dot com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]