分享

Using JAXB 2.1 with JavaSE 6

 9loong 2009-03-31
 
JavaSE 6 comes with JAXB 2.0 API in rt.jar . Therefore, using JAXB 2.1 with JavaSE 6 requires one to override a portion of rt.jar with the new API. There are several ways to do this:
  1. Place the 2.1 jaxb-api.jar into $JRE_HOME/lib/endorsed . This essentially makes your JRE to "JRE 6 + JAXB 2.1". This won't affect any other applications that use this JRE, and it's easy. On the other hand, in various scenarios you may not be able to alter the JRE.
  2. Use the system property java.endorsed.dirs when you launch your application, and have it point to the directory that contains the 2.1 jaxb-api.jar . This allows you use use JAXB 2.1 without modifying the JRE. Make sure not to include any other JAXB RI jar files (such as jsr173-api.jar or jaxb-impl.jar .)
  3. Implement a custom ClassLoader and block delegation to javax.xml.bind package, so that code running inside this class loader will load the JAXB API from elsewhere. This is a very advanced approach.
No matter which approach you take, make sure not to include jar files other than jaxb-api.jar . Doing so, for example including jaxb-xjc.jar , may result in classloading related errors such as "taskdef A class needed by class com.sun.tools.xjc.XJCTask cannot be found: org/apache/tools/ant/...."
See the endorsed directory mechanism for more details.

jdk6update12也可解决
 

https://jaxb.dev./guide/Which_JAXB_RI_is_included_in_which_JDK_.html
Which JAXB RI is included in which JDK?

This table captures the history of the JAXB RI integration into Java6. This is for information purposes only. In particular, the JAXB RI in JDK6 is package renamed to avoid any conflict with the stand-alone JAXB RI distribution or with the jaxb2-reflection library. You can use any version of these with any version of JDK without worrying about implementation conflicts.

JDK6 first release - JDK6 u3 JAXB RI 2.0.3
JDK6 u4 JAXB RI 2.1.3

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多