Oh, and I got it working now.
I should have had a project.xml file, but I somehow forgot to include it
from my previous project using torque, and then I forgot I used to have
a project.xml file. DOH!
Well, I added my template project.xml file, and then added the
dependency for postgresql to that, and now the driver is loading correct.
Thanks for all the help
Martin
Martin Tilsted wrote:
Thomas Vandahl wrote:
Martin Tilsted wrote:
java.lang.ClassNotFoundException: org.postgresql.Driver
Maven should have setup a repository where it downloads all kinds of
dependencies. Normally this is ~/.maven/repository. You will need to add
a dependency entry to your project.xml like in
---8<---
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.3-603.jdbc4</version>
</dependency>
---8<---
My ~/.maven/repository only contains jar files but I do have a
~/.maven/cache/maven-torque-plugin-3.3/project.xml
which is the only project.xml file I could find that have anything to
do with torque.
I added the xml code from above to project.xml, and it did download
the postgresql.jar file, and when running
maven -X torque:jdbc
i get
adding dependency
/home/tiller/.maven/repository/postgresql/jars/postgresql-8.3-603.jdbc4.jar
into project classloader
But I still get the
class not found exception.
Full stacktrace:
Errors stack :
>> Unable to obtain goal [torque:jdbc]
>> File......
file:/home/tiller/.maven/cache/maven-torque-plugin-3.3/plugin.jelly
>> Element... torque-jdbc-transform
>> Line...... 522
>> Column.... 7
>> java.lang.ClassNotFoundException: org.postgresql.Driver
>> org.postgresql.Driver
Exception stack traces :
org.apache.maven.werkz.UnattainableGoalException: Unable to obtain
goal [torque:jdbc]
at org.apache.maven.werkz.Goal.fire(Goal.java:698)
at org.apache.maven.werkz.Goal.attain(Goal.java:623)
at
org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:712)
at
org.apache.maven.MavenSession.attainGoals(MavenSession.java:265)
at org.apache.maven.cli.App.doMain(App.java:307)
at org.apache.maven.cli.App.main(App.java:217)
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 com.werken.forehead.Forehead.run(Forehead.java:551)
at com.werken.forehead.Forehead.main(Forehead.java:581)
Caused by: org.apache.commons.jelly.JellyTagException:
file:/home/tiller/.maven/cache/maven-torque-plugin-3.3/plugin.jelly:522:7:
<torque-jdbc-transform> java.lang.ClassNotFoundException:
org.postgresql.Driver
at
org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:681)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262)
at
org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
at
org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:83)
at
org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:116)
at org.apache.maven.werkz.Goal.fire(Goal.java:691)
... 11 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
at
org.apache.torque.task.TorqueJDBCTransformTask.execute(TorqueJDBCTransformTask.java:171)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:195)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:250)
... 15 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1166)
at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1107)
at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:977)
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.torque.task.TorqueJDBCTransformTask.generateXML(TorqueJDBCTransformTask.java:184)
at
org.apache.torque.task.TorqueJDBCTransformTask.execute(TorqueJDBCTransformTask.java:161)
... 18 more
------------------- And my build.properties in case that should matter
-------
maven.compile.source = 1.6
maven.compile.target = 1.6
maven.compile.debug = on
maven.compile.optimize = off
maven.compile.deprecation = off
maven.compile.encoding = UTF-8
maven.compile.source = 1.6
maven.compile.target = 1.6
#Torque setup
torque.project=test
torque.java.dir = src
torque.sql.dir = src/sql
torque.output.dir = src/sql
torque.schema.dir = src/schema
torque.contextProperties = build.properties
torque.addSaveMethod = true
torque.runOnlyOnSchemaChange = true
torque.saveException = Exception
torque.addIntakeRetrievable = true
torque.retrievableInterface = org.apache.turbine.om.Retrievable
#
# Initial ID values for the ID_TABLE
#
initialID = 1100
initialIDValue = 100
initialIDStep = 10
torque.database=postgresql
torque.targetPackage=test.auto
torque.basePrefix=Base
torque.base = Base
torque.database.driver=org.postgresql.Driver
torque.database.url = jdbc:postgresql://127.0.0.1:5432/test
torque.database.user=test
torque.database.host=localhost
------------ CONFIG END ----------
This version is available in the central repository so you will not need
to download it yourself.
An other thing is: I removed my .maven and then did a
maven torque:jdbc
which result in the file
./cache/maven-torque-plugin-3.3-RC2
But torque-3.3 have been released, so why does it fetch the old RC2
file?
Well, this depends on the entries in your project.xml. Find the
dependency on maven-torque-plugin and change the version to 3.3. I
recommend to delete the 3.3-RC2-version from the cache first.
Just for the reference in case someone need this.
What I did not understand was that if I delete ~/.maven and I don't
have any project.xml file(I don't) how did
maven know what to do with maven torque:jdbc and why did it download
the RC2 version.
The answer is that maven caches files it download in
/usr/local/maven-1.1/plugins and I had for a long time ago downloaded
the rc2 version, so it just used that because I had not added an
other torque file to maven.
So my solution was simply to do a reinstall of my /usr/local/maven and
then do a
maven plugin:download -DartifactId=maven-torque-plugin
-DgroupId=torque -Dversion=3.3
To get the correct new version of torque.
Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscr...@db.apache.org
For additional commands, e-mail: torque-user-h...@db.apache.org