Hi all,
This is just for information in case someone has the same issue when
trying to create a model through Ant script the way I do it.
I have an Ant script that builds my model by directly calling java.
This was working:
<target name="generate" description="Generate the classes">
<java
classpath="jars/jooq-2.0.4.jar;jars/jooq-meta-2.0.4.jar;jars/jooq-codegen-2.0.4.jar;jars/jtds.jar;."
classname="org.jooq.util.GenerationTool">
<arg value="/test.properties"/>
</java>
</target>
This fails:
<target name="generate" description="Generate the classes">
<java
classpath="jars/jooq-2.0.5.jar;jars/jooq-meta-2.0.5.jar;jars/jooq-codegen-2.0.5.jar;jars/jtds.jar;."
classname="org.jooq.util.GenerationTool">
<arg value="/test.xml"/>
</java>
</target>
with the following exception (full log attached):
java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
The key to solve this is to add this property to the Java task: fork="true"
<target name="generate" description="Generate the classes">
<java fork="true"
classpath="jars/jooq-2.0.5.jar;jars/jooq-meta-2.0.5.jar;jars/jooq-codegen-2.0.5.jar;jars/jtds.jar;."
classname="org.jooq.util.GenerationTool">
<arg value="/test.xml"/>
</java>
</target>
The reason seems to be that the system class loader is not able to
find the ContextFactory class or something.
Hope this helps,
-Christopher
generate:
[java] févr. 28, 2012 10:56:07 PM org.jooq.tools.JooqLogger info
[java] Infos: Initialising properties : /test.xml
[java] févr. 28, 2012 10:56:07 PM org.jooq.tools.JooqLogger error
[java] Grave: Cannot read /test.xml. Error : javax.xml.bind.JAXBException
[java] - with linked exception:
[java] [java.lang.ClassNotFoundException:
com.sun.xml.internal.bind.v2.ContextFactory]
[java] javax.xml.bind.DataBindingException: javax.xml.bind.JAXBException
[java] - with linked exception:
[java] [java.lang.ClassNotFoundException:
com.sun.xml.internal.bind.v2.ContextFactory]
[java] at javax.xml.bind.JAXB.unmarshal(JAXB.java:245)
[java] at org.jooq.util.GenerationTool.main(GenerationTool.java:120)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.lang.reflect.Method.invoke(Method.java:601)
[java] at
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
[java] at
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
[java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:771)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
[java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
[java] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.lang.reflect.Method.invoke(Method.java:601)
[java] at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java] at org.apache.tools.ant.Task.perform(Task.java:348)
[java] at org.apache.tools.ant.Target.execute(Target.java:390)
[java] at org.apache.tools.ant.Target.performTasks(Target.java:411)
[java] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
[java] at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
[java] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[java] at
org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[java] at
org.apache.tools.ant.Project.executeTargets(Project.java:1251)
[java] at
org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:424)
[java] at
org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:138)
[java] Caused by: javax.xml.bind.JAXBException
[java] - with linked exception:
[java] [java.lang.ClassNotFoundException:
com.sun.xml.internal.bind.v2.ContextFactory]
[java] at
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:227)
[java] at javax.xml.bind.ContextFinder.find(ContextFinder.java:445)
[java] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
[java] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
[java] at javax.xml.bind.JAXB$Cache.<init>(JAXB.java:112)
[java] at javax.xml.bind.JAXB.getContext(JAXB.java:139)
[java] at javax.xml.bind.JAXB.unmarshal(JAXB.java:242)
[java] ... 27 more
[java] Caused by: java.lang.ClassNotFoundException:
com.sun.xml.internal.bind.v2.ContextFactory
[java] at
org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1361)
[java] at
org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1311)
[java] at
org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1070)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
[java] at
javax.xml.bind.ContextFinder.safeLoadClass(ContextFinder.java:563)
[java] at
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:225)
[java] ... 33 more
[java] févr. 28, 2012 10:56:07 PM org.jooq.tools.JooqLogger error
[java] Grave: Usage : GenerationTool <configuration-file>
[java] Java Result: -1