Home » Java » Ant: [xslt] java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.optional.TraXLiaison

Ant: [xslt] java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.optional.TraXLiaison

Posted by: admin December 28, 2021 Leave a comment

Questions:

I have an Ant build which works fine on Windows, but seems to flake out when I bring it over to Linux. The issue is here:

[xslt] java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.optional.TraXLiaison

I have already tried the following:

  1. Putting xalan.jar, xercesImpl.jar and xml-apis.jar in the $ANT_HOME/lib directory.
  2. Putting them into the classpath from within the build file
  3. Installing ant’s optional classes.

I’m using an EC2 Linux instance (Basic 64-bit Amazon Linux AMI 2011.02.1 Beta (AMI Id: ami-8e1fece7) Amazon Linux AMI Base 2011.02.1, EBS boot, 64-bit architecture with Amazon EC2 AMI Tools.)

The frustrating thing is that I DID have it working, and then when I packed everything up and moved it to another machine, BOTH machines stopped working. 🙁

Answers:

I was getting the same error from the junitreport task:

build.xml:251: Errors while applying transformations:
java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.optional.TraXLiaison

I had to install the ant-trax RPM package to provide this class and fix the error:

$ rpm -ql ant-trax | grep /usr/share/java/ant/ant-trax.jar
/usr/share/java/ant/ant-trax.jar

$ jar tf /usr/share/java/ant/ant-trax.jar | grep TraXLiaison
org/apache/tools/ant/taskdefs/optional/TraXLiaison.class

###

Assuming you’re using Ant 1.8.1, it seems like you hit a bug, see =
https://issues.apache.org/bugzilla/show_bug.cgi?id=49712

The org.apache.tools.ant.taskdefs.optional.TraXLiaison Class has moved
to ant-nodeps.jar, maybe you just have to put that jar on your path.