java.lang.LinkageError

这是个依赖异常。类A依赖于类B,但是类A在编译时、加载时使用了两个不同的类B的class,就会出现这个异常。也就是说,这个异常通常指示着jar包冲突。比如,cxf发布到weblogic下时,可能出现:

java.lang.LinkageError: loader constraints violated when linking org/w3c/dom/UserDataHandler class

这个org/w3c/dom/UserDataHandler class至少在三个jar包中:jdk的rt.jar,jaxen.jar,和xmlbeans.jar里。去掉后两个,我的cxf就能正常运行了。

2023-02-16 补充

说这是个“依赖”,理解得有点浅显了。实际上,这是JVM在做内联时抛出的错误。不过这里不深究了。