Affects Version/s: 6.1.11
Fix Version/s: 6.1.25
Number of attachments :
I can't seem to reopen
JETTY-420, so I'm filing this separately.
Jetty includes "javax.xml" in the list of packages that the WebAppClassLoader always consults the parent first (I'll call such packages as "pass-through" packages.) In JRE6, rt.jar now contains javax.xml.soap.AttachmentPart (a part of SAAJ API), which refers to javax.activation.DataHandler.
However, "javax.activation" is not listed as a pass-through package. As a result, if the web application directly references DataHandler and also uses SAAJ, it'll result in a classloader constraint violation. This is the root cause of
Unfortunately, applications that need to run on Java5 needs to bundle activation.jar and SAAJ, thus there's nothing apps can do to avoid this bug.
In general, everything referenced by pass-through packages need to be also listed as a pass-through packages to avoid such a constraint violation.
In this case, the fix is to add "javax.activation" to the list of system classes. This definition is given in WebbAppContext._systemClasses.