Re: Ant cgen task not working after following tutorial

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon May 25 2009 - 06:27:16 EDT

  • Next message: Joseph Wamicha: "Re: Ant cgen task not working after following tutorial"

    I know nothing about cdef, but cgen works pretty well in all known
    environments.

    The only thing I can think of is to check the classpath that you set
    on your file, and trim it to just Cayenne and its dependencies. I
    don't see task classpath in your logs. Maybe print it like this:

    <property name="cp" refid="full.classpath"/>
    <echo>${cp}</echo>

    Andrus

    On May 25, 2009, at 1:15 PM, Joseph Wamicha wrote:

    > Back to the original error :(
    >
    > Could using the cdef class generation with ant version 1.7.1 be the
    > problem?
    >
    >
    > Total time: 0 seconds
    > sysadmi..strodon:/mnt/sda3/EclipseWork/testpersistence$ ant -v
    > classgen
    > Apache Ant version 1.7.1 compiled on November 10 2008
    > Buildfile: build.xml
    > Detected Java version: 1.6 in: /usr/lib/jvm/java-6-sun-1.6.0.13/jre
    > Detected OS: Linux
    > parsing buildfile /mnt/sda3/EclipseWork/testpersistence/build.xml
    > with URI = file:/mnt/sda3/EclipseWork/testpersistence/build.xml
    > Project base dir set to: /mnt/sda3/EclipseWork/testpersistence
    > [antlib:org.apache.tools.ant] Could not load definitions from
    > resource org/apache/tools/ant/antlib.xml. It could not be found.
    > parsing buildfile jar:file:/mnt/sda3/EclipseWork/testpersistence/lib/
    > cayenne-server-3.0M5.jar!/org/apache/cayenne/tools/antlib.xml with
    > URI = jar:file:/mnt/sda3/EclipseWork/testpersistence/lib/cayenne-
    > server-3.0M5.jar!/org/apache/cayenne/tools/antlib.xml
    > Build sequence for target(s) `classgen' is [classgen]
    > Complete build sequence is [classgen, prepare, clean, deploy,
    > hsqldbgen, build, dist, ]
    >
    > classgen:
    > [cgen] Generating superclass file: /mnt/sda3/EclipseWork/
    > testpersistence/test/com/persistence/_Config.java
    >
    > BUILD FAILED
    > java.lang.Exception: Problem initializing template loader:
    > org.apache.cayenne.gen.ClassGeneratorResourceLoader
    > Error is: java.lang.ClassNotFoundException:
    > org.apache.cayenne.gen.ClassGeneratorResourceLoader
    > at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    > at java.security.AccessController.doPrivileged(Native Method)
    > at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    > at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    > at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    > at java.lang.Class.forName0(Native Method)
    > at java.lang.Class.forName(Class.java:169)
    > at
    > org
    > .apache
    > .velocity
    > .runtime
    > .resource
    > .loader.ResourceLoaderFactory.getLoader(ResourceLoaderFactory.java:41)
    > at
    > org
    > .apache
    > .velocity
    > .runtime
    > .resource.ResourceManagerImpl.initialize(ResourceManagerImpl.java:142)
    > at
    > org
    > .apache
    > .velocity
    > .runtime
    > .RuntimeInstance.initializeResourceManager(RuntimeInstance.java:522)
    > at
    > org
    > .apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:
    > 227)
    > at
    > org
    > .apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:
    > 461)
    > at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:
    > 106)
    > at
    > org
    > .apache
    > .cayenne
    > .gen.ClassGenerationAction.getTemplate(ClassGenerationAction.java:273)
    > at
    > org
    > .apache
    > .cayenne
    > .gen.ClassGenerationAction.execute(ClassGenerationAction.java:241)
    > at
    > org
    > .apache
    > .cayenne
    > .gen.ClassGenerationAction.execute(ClassGenerationAction.java:213)
    > at
    > org
    > .apache
    > .cayenne
    > .tools.CayenneGeneratorTask.execute(CayenneGeneratorTask.java:163)
    > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:
    > 288)
    > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    > at
    > sun
    > .reflect
    > .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    > at
    > sun
    > .reflect
    > .DelegatingMethodAccessorImpl
    > .invoke(DelegatingMethodAccessorImpl.java:25)
    > at java.lang.reflect.Method.invoke(Method.java:597)
    > at
    > org
    > .apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:
    > 106)
    > at org.apache.tools.ant.Task.perform(Task.java:348)
    > at org.apache.tools.ant.Target.execute(Target.java:357)
    > at org.apache.tools.ant.Target.performTasks(Target.java:385)
    > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:
    > 1337)
    > at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    > at
    > org
    > .apache
    > .tools
    > .ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    > at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    > at org.apache.tools.ant.Main.runBuild(Main.java:758)
    > at org.apache.tools.ant.Main.startAnt(Main.java:217)
    > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    >
    > at
    > org
    > .apache
    > .velocity
    > .runtime
    > .resource
    > .loader.ResourceLoaderFactory.getLoader(ResourceLoaderFactory.java:56)
    > at
    > org
    > .apache
    > .velocity
    > .runtime
    > .resource.ResourceManagerImpl.initialize(ResourceManagerImpl.java:142)
    > at
    > org
    > .apache
    > .velocity
    > .runtime
    > .RuntimeInstance.initializeResourceManager(RuntimeInstance.java:522)
    > at
    > org
    > .apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:
    > 227)
    > at
    > org
    > .apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:
    > 461)
    > at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:
    > 106)
    > at
    > org
    > .apache
    > .cayenne
    > .gen.ClassGenerationAction.getTemplate(ClassGenerationAction.java:273)
    > at
    > org
    > .apache
    > .cayenne
    > .gen.ClassGenerationAction.execute(ClassGenerationAction.java:241)
    > at
    > org
    > .apache
    > .cayenne
    > .gen.ClassGenerationAction.execute(ClassGenerationAction.java:213)
    > at
    > org
    > .apache
    > .cayenne
    > .tools.CayenneGeneratorTask.execute(CayenneGeneratorTask.java:163)
    > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:
    > 288)
    > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    > at
    > sun
    > .reflect
    > .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    > at
    > sun
    > .reflect
    > .DelegatingMethodAccessorImpl
    > .invoke(DelegatingMethodAccessorImpl.java:25)
    > at java.lang.reflect.Method.invoke(Method.java:597)
    > at
    > org
    > .apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:
    > 106)
    > at org.apache.tools.ant.Task.perform(Task.java:348)
    > at org.apache.tools.ant.Target.execute(Target.java:357)
    > at org.apache.tools.ant.Target.performTasks(Target.java:385)
    > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:
    > 1337)
    > at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    > at
    > org
    > .apache
    > .tools
    > .ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    > at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    > at org.apache.tools.ant.Main.runBuild(Main.java:758)
    > at org.apache.tools.ant.Main.startAnt(Main.java:217)
    > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    >
    > Total time: 0 seconds
    > Andrus Adamchik wrote:
    >> Yeah, in 3.0 you also need a VPP library (we should put it in lib/
    >> third-party I guess...). Anyways, you can get it from here:
    >>
    >> http://sourceforge.net/projects/vpp
    >>
    >> Andrus
    >>
    >> On May 25, 2009, at 12:44 PM, Joseph Wamicha wrote:
    >>
    >>> I'm now trying with Cayenne 3.0M5. Please find the error logs below:
    >>>
    >>> sysadmi..strodon:/mnt/sda3/EclipseWork/testpersistence$ ant -v
    >>> classgen
    >>> Apache Ant version 1.7.1 compiled on November 10 2008
    >>> Buildfile: build.xml
    >>> Detected Java version: 1.6 in: /usr/lib/jvm/java-6-sun-1.6.0.13/jre
    >>> Detected OS: Linux
    >>> parsing buildfile /mnt/sda3/EclipseWork/testpersistence/build.xml
    >>> with URI = file:/mnt/sda3/EclipseWork/testpersistence/build.xml
    >>> Project base dir set to: /mnt/sda3/EclipseWork/testpersistence
    >>> [antlib:org.apache.tools.ant] Could not load definitions from
    >>> resource org/apache/tools/ant/antlib.xml. It could not be found.
    >>> parsing buildfile jar:file:/mnt/sda3/EclipseWork/testpersistence/
    >>> lib/cayenne-server-3.0M5.jar!/org/apache/cayenne/tools/antlib.xml
    >>> with URI = jar:file:/mnt/sda3/EclipseWork/testpersistence/lib/
    >>> cayenne-server-3.0M5.jar!/org/apache/cayenne/tools/antlib.xml
    >>> Build sequence for target(s) `classgen' is [classgen]
    >>> Complete build sequence is [classgen, prepare, clean, deploy,
    >>> hsqldbgen, build, dist, ]
    >>>
    >>> classgen:
    >>>
    >>> BUILD FAILED
    >>> java.lang.NoClassDefFoundError: foundrylogic/vpp/VPPConfig
    >>> at
    >>> org
    >>> .apache
    >>> .cayenne
    >>> .tools
    >>> .CayenneGeneratorTask
    >>> .initializeVppConfig(CayenneGeneratorTask.java:326)
    >>> at
    >>> org
    >>> .apache
    >>> .cayenne
    >>> .tools
    >>> .CayenneGeneratorTask.getVppContext(CayenneGeneratorTask.java:76)
    >>> at
    >>> org
    >>> .apache
    >>> .cayenne
    >>> .tools
    >>> .CayenneGeneratorTask
    >>> .createGeneratorAction(CayenneGeneratorTask.java:91)
    >>> at
    >>> org
    >>> .apache
    >>> .cayenne
    >>> .tools.CayenneGeneratorTask.execute(CayenneGeneratorTask.java:156)
    >>> at
    >>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    >>> at
    >>> sun
    >>> .reflect
    >>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    >>> at
    >>> sun
    >>> .reflect
    >>> .DelegatingMethodAccessorImpl
    >>> .invoke(DelegatingMethodAccessorImpl.java:25)
    >>> at java.lang.reflect.Method.invoke(Method.java:597)
    >>> at
    >>> org
    >>> .apache
    >>> .tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    >>> at org.apache.tools.ant.Task.perform(Task.java:348)
    >>> at org.apache.tools.ant.Target.execute(Target.java:357)
    >>> at org.apache.tools.ant.Target.performTasks(Target.java:385)
    >>> at org.apache.tools.ant.Project.executeSortedTargets(Project.java:
    >>> 1337)
    >>> at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    >>> at
    >>> org
    >>> .apache
    >>> .tools
    >>> .ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    >>> at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    >>> at org.apache.tools.ant.Main.runBuild(Main.java:758)
    >>> at org.apache.tools.ant.Main.startAnt(Main.java:217)
    >>> at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    >>> at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    >>> Caused by: java.lang.ClassNotFoundException:
    >>> foundrylogic.vpp.VPPConfig
    >>> at
    >>> org
    >>> .apache
    >>> .tools
    >>> .ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1400)
    >>> at
    >>> org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:
    >>> 1341)
    >>> at
    >>> org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:
    >>> 1088)
    >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    >>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    >>> ... 21 more
    >>>
    >>> Total time: 0 seconds
    >>>
    >>> Thanks,
    >>> Joseph.
    >>>
    >>> Andrus Adamchik wrote:
    >>>> The stack shows that ClassGenerator class is present, while
    >>>> ClassGeneratorResourceLoader is not. Both are coming from the
    >>>> same JAR. Very strange... Could you possibly try the same thing
    >>>> with Cayenne 3.0M5?
    >>>>
    >>>> Also you can debug it with "ant -v" to see what the
    >>>> "full.classpath" is set to (maybe there's a conflicting Velocity
    >>>> installation or something).
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>> On May 25, 2009, at 11:55 AM, Joseph Wamicha wrote:
    >>>>
    >>>>> Hi Andrus,
    >>>>>
    >>>>> Thanks for your response. The version is: cayenne-2.0.4
    >>>>>
    >>>>> Andrus Adamchik wrote:
    >>>>>> Hi Joseph,
    >>>>>>
    >>>>>> which version of Cayenne is that?
    >>>>>>
    >>>>>> Andrus
    >>>>>>
    >>>>>>
    >>>>>> On May 25, 2009, at 11:21 AM, Joseph Wamicha wrote:
    >>>>>>
    >>>>>>> Hi,
    >>>>>>>
    >>>>>>> I'm currently experimenting with cayenne; it's looking good.
    >>>>>>>
    >>>>>>> I have however run into problems while running the ant cgen
    >>>>>>> task. I'm not sure what's going wrong with ant cgen. I would
    >>>>>>> be grateful for any help on this. Please see my ant task below:
    >>>>>>>
    >>>>>>> <path id="full.classpath">
    >>>>>>> <fileset dir="lib" />
    >>>>>>> </path>
    >>>>>>> <!-- Custom apache cayenne ant tasks...-->
    >>>>>>> <typedef resource="org/apache/cayenne/tools/antlib.xml">
    >>>>>>> <classpath refid="full.classpath"/>
    >>>>>>> </typedef>
    >>>>>>> <target name="classgen">
    >>>>>>> <cgen map="src/PersistenceMap.map.xml" destDir="test"
    >>>>>>> usepkgpath="true" superpkg="com.plugin.persistence" />
    >>>>>>> </target>
    >>>>>>>
    >>>>>>> and inside my lib directory I have the cayenne.jar file
    >>>>>>>
    >>>>>>> When I now run ant classgen, I get the following error:
    >>>>>>>
    >>>>>>> sysadmi..strodon$ ant classgen
    >>>>>>> Buildfile: build.xml
    >>>>>>>
    >>>>>>> classgen:
    >>>>>>> [cgen] Error generating classes: Problem initializing template
    >>>>>>> loader: org.apache.cayenne.gen.ClassGeneratorResourceLoader
    >>>>>>> [cgen] Error is: java.lang.ClassNotFoundException:
    >>>>>>> org.apache.cayenne.gen.ClassGeneratorResourceLoader
    >>>>>>> [cgen] at java.net.URLClassLoader
    >>>>>>> $1.run(URLClassLoader.java:200)
    >>>>>>> [cgen] at
    >>>>>>> java.security.AccessController.doPrivileged(Native Method)
    >>>>>>> [cgen] at
    >>>>>>> java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    >>>>>>> [cgen] at java.lang.ClassLoader.loadClass(ClassLoader.java:
    >>>>>>> 307)
    >>>>>>> [cgen] at java.lang.ClassLoader.loadClass(ClassLoader.java:
    >>>>>>> 252)
    >>>>>>> [cgen] at
    >>>>>>> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    >>>>>>> [cgen] at java.lang.Class.forName0(Native Method)
    >>>>>>> [cgen] at java.lang.Class.forName(Class.java:169)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .velocity
    >>>>>>> .runtime
    >>>>>>> .resource
    >>>>>>> .loader
    >>>>>>> .ResourceLoaderFactory.getLoader(ResourceLoaderFactory.java:41)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .velocity
    >>>>>>> .runtime
    >>>>>>> .resource
    >>>>>>> .ResourceManagerImpl.initialize(ResourceManagerImpl.java:142)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .velocity
    >>>>>>> .runtime
    >>>>>>> .RuntimeInstance
    >>>>>>> .initializeResourceManager(RuntimeInstance.java:522)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:227)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:461)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache.velocity.app.VelocityEngine.init(VelocityEngine.java:
    >>>>>>> 106)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .cayenne
    >>>>>>> .gen
    >>>>>>> .ClassGenerator.initializeClassTemplate(ClassGenerator.java:149)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache.cayenne.gen.ClassGenerator.<init>(ClassGenerator.java:
    >>>>>>> 94)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .cayenne
    >>>>>>> .gen
    >>>>>>> .MapClassGenerator
    >>>>>>> .generateClassPairs_1_1(MapClassGenerator.java:222)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .cayenne
    >>>>>>> .gen
    >>>>>>> .MapClassGenerator.generateClassPairs(MapClassGenerator.java:
    >>>>>>> 199)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .cayenne
    >>>>>>> .gen.DefaultClassGenerator.execute(DefaultClassGenerator.java:
    >>>>>>> 98)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .cayenne
    >>>>>>> .tools.CayenneGenerator.processMap(CayenneGenerator.java:144)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .cayenne.tools.CayenneGenerator.execute(CayenneGenerator.java:
    >>>>>>> 80)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache.tools.ant.UnknownElement.execute(UnknownElement.java:
    >>>>>>> 288)
    >>>>>>> [cgen] at
    >>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    >>>>>>> [cgen] at
    >>>>>>> sun
    >>>>>>> .reflect
    >>>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
    >>>>>>> 39)
    >>>>>>> [cgen] at
    >>>>>>> sun
    >>>>>>> .reflect
    >>>>>>> .DelegatingMethodAccessorImpl
    >>>>>>> .invoke(DelegatingMethodAccessorImpl.java:25)
    >>>>>>> [cgen] at java.lang.reflect.Method.invoke(Method.java:597)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:
    >>>>>>> 106)
    >>>>>>> [cgen] at org.apache.tools.ant.Task.perform(Task.java:348)
    >>>>>>> [cgen] at org.apache.tools.ant.Target.execute(Target.java:
    >>>>>>> 357)
    >>>>>>> [cgen] at
    >>>>>>> org.apache.tools.ant.Target.performTasks(Target.java:385)
    >>>>>>> [cgen] at
    >>>>>>> org.apache.tools.ant.Project.executeSortedTargets(Project.java:
    >>>>>>> 1337)
    >>>>>>> [cgen] at
    >>>>>>> org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    >>>>>>> [cgen] at
    >>>>>>> org
    >>>>>>> .apache
    >>>>>>> .tools
    >>>>>>> .ant
    >>>>>>> .helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    >>>>>>> [cgen] at
    >>>>>>> org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    >>>>>>> [cgen] at org.apache.tools.ant.Main.runBuild(Main.java:758)
    >>>>>>> [cgen] at org.apache.tools.ant.Main.startAnt(Main.java:217)
    >>>>>>> [cgen] at
    >>>>>>> org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    >>>>>>> [cgen] at
    >>>>>>> org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    >>>>>>>
    >>>>>>> BUILD FAILED
    >>>>>>>
    >>>>>>> What could be going wrong?
    >>>>>>>
    >>>>>>> Thanks,
    >>>>>>> Joseph.
    >>>>>>>
    >>>>>>
    >>>>>
    >>>>>
    >>>>
    >>>
    >>>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Mon May 25 2009 - 06:27:58 EDT