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

Reply via email to