I'm having some annoying classpath problems trying to do something
relatively simple, just running the "xjc" task from a small Ant build
script.

I'm using JDK 1.5 and Ant 1.7.1.

I'm seeing the following exception when I try to run xjc:

java.lang.NoClassDefFoundError:
com/sun/xml/bind/v2/runtime/JAXBContextImpl$JAXBContextBuilder

I think some of the elements that are involved here are:

* Ant has its own jaxb/xjc classes in "ant.jar"
* There appear to be multiple jar sets of "jaxb 2", and I don't know
which one is which

A couple days ago I had to write a build script to do just about the
same thing, generating a client jar from a schema.  I thought I had the
latest jaxb jars in the project lib dir.  This had no trouble at all.
It generated the client jar with no errors.

Then, I started work on the client jar build on the other project, which
at the time was using at least a different copy of the jaxb jars.  That
hit the NCDFE shown above.

After I went back and looked at the first project that worked fine, I
discovered I had accidentally specified the wrong path to the "xjc" jar
in my lib directory, so that reference wasn't finding anything.  When I
changed the reference to match the file name, that original project then
started getting the same NCDFE.

I then turned on verbose class loading in ANT_OPTS, which told me that
Ant had its own versions of the jaxb/xjc classes.  I don't know whether
they're "wrong", just "different".  I suppose it's possible they're the
JAXB "1" classes, but I don't know.

I also tried adding the Ant "-verbose" command line arg.  This gave me
some useful info when it tried to run "xjc".  When I can get "xjc" to
work, I see the following in the build output:

  build id of XJC is hudson-jaxb-ri-2.1-257

When I get the NCDFE, I get this:

  build id of XJC is hudson-jaxb-ri-2.1-833

I then tried running Ant with a "-lib" command line argument, specifying
the path to the jaxb jars that I'm TRYING to use.  I did this in both
projects.  This worked, in both projects.  Unfortunately, this isn't
really a reasonable workaround for me.

What can I do to get this to just work, without any serious hacks?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to