2 Replies Latest reply on Jan 30, 2002 12:03 PM by Lindsay Godfrey

    No Class Def Error: javax.transaction.xa.Xid

    Saul Farber Newbie

      Hello!

      I'm not a newbie to JBoss, and have tried all of the obvious (and some not so obvious!) solutions to this problem...but to no avail!

      I have a Jboss 2.4.1 installation which uses the Oracle transaction manager (oracle.jdbc.xa.OracleXid)...set via the jboss.jcml file (the transactionmanager Mbean).

      When I upgraded to Jboss 2.4.4, I got a NoClassDefFoundError for the class javax/transaction/xa/Xid while using the exact same jboss.jcml file. I looked for the offending class file, and found it in $JBOSS/lib/ext/jboss-j2ee.jar. I assumed, since these directories are auto-magically inserted into JBoss's classpath, that the offending classfile should have been in the classpath...but just to be sure I added it to the system classpath. Still no luck. Same error, same place, same class. I even unrolled the jar file and added it to a "hack" directory and put that directory on the classpath. Same error.

      so I thought there might be some incompatibility between Jboss 2.4.4 and the oracle transaction manager. So I removed the oracle Xid from jboss.jcml, and left the default transaction manager to take over.

      This helped the javax.transaction.xa.Xid problem, but raised another...when the default tomcat-test.ear file tries to deploy, two more noclassdeffounderror's are thrown, one for javax.transaction.UserTransaction (in the ConfigureUserTransaction mbean, right after the TransactionManager Mbean) and one for javax.ejb.EJBMetaData class, when the tomcat-test.ear file tries to load.

      At this point the jboss.jcml files are pretty much in default form, and I'm getting these errors.

      Both of these files are (surprise) in the jboss-j2ee.jar archive. Is there a chance that jboss 2.4.4 is not "picking-up" that particular jar file as it starts up?

      Anyone seen this before?

      Thanks so much, in advance!!

      --saul

        • 1. Re: No Class Def Error: javax.transaction.xa.Xid
          Saul Farber Newbie

          Aha!

          I went back and tried the default run_with_tomcat.sh script, and it worked...so I sniffed around, and found that someone (probably me...sigh) added an oracle-specific jar to the jboss/lib/ext directory. Some conflict between an oracle supplied implementation of the "javax.transaction.UserTransaction", "javax.transaction.xa.Xid" and "javax.ejb.EJBMetaData" classes in that file, and the working ones supplied with jboss was in the works.

          Oh well...teaches me to try for 5 more minutes next time before posting!

          --saul

          • 2. Re: No Class Def Error: javax.transaction.xa.Xid
            Lindsay Godfrey Newbie

            Err... so that means you're no longer using oracle.jdbc.xa.OracleXid

            It's no longer on your class path (you've removed classes12.zip from ./ext - I presume) and anyway you've swapped it out for the default in jboss.jcml

            Was there any advantages in using oracle.jdbc.xa.OracleXid in the first place?

            Anyone know why there is an conflict with the Oracle classes when using 2.4.4?

            Cheers