zoukankan      html  css  js  c++  java
  • 目录启动CXF启动报告LinkageError异常以及Java的endorsed机制

    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

    Exception in thread "main" java.lang.LinkageError: JAXB 2.1 API is being loaded from the bootstrap classloader,
    but this RI (from jar:file:/C:/apache-cxf-2.5.2/lib/jaxb-impl-2.2.4-1.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.2 API.
    Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
    翻译:Jaxb2.1的API正在从根类加载器中加载,但这个参考实现(jaxb-impl-2.2.4-1.jar)须要一个2.2的API
          请使用endorsed目录机制来替换掉根类加载器中的jaxb-api.jar,请参考http://java.sun.com/j2se/1.5.0/docs/guide/standards/
    分析:这是因为JDK启动时加载的是自带的jaxb-api-2.1.jar,而CXF须要用到的是jaxb-api-2.2.jar,于是报错
        每日一道理
    宽容,是一种坦荡,可以无私无畏,无拘无束,无尘无染。宽容,是一种豁达,是比海洋和天空更为博大的胸襟,是宽广和宽厚的叠加,延续和升华。宽容有度,宽容无价,宽以待人,这是人生处世的基本法则。
    注意:1)不是让你去下载jaxb-api.jar,而是应该下载jaxb-api-2.2.jar
            该jar可从https://jaxb.java.net/下载,或从apache-cxf-2.5.2.zipapache-cxf-2.5.2libendorsed目录中获得
          2)不是让你把下载到的jar放到%JAVA_HOME%/lib/endorsed/目录下,而是应该自己找到正确的目录
    目录:找到正确目录的方法,还要根据JavaProject还是JavaWebProject而不同
          1)如果是JavaProject就简略多了,直接在main方法里执行System.out.println(System.getProperty("java.endorsed.dirs"));
            我的电脑上表现的目录地址是这个D:DevelopJavajdk1.6.0_45jrelibendorsed
          2)如果是JavaWebProject就要启动一个没有用到jaxb的Web项目,然后在jsp中执行<%=System.getProperty("java.endorsed.dirs")%>
            我的电脑上表现的目录地址是这个D:Developapache-tomcat-6.0.36/common/endorsed
    解决:有两种解决方法
          1)第一种就是把jaxb-api-2.2.jar放到下面找到的正确的endorsed目录中,即可
          2)第二种是相对使用Eclipse启动JavaProject而言的
            main-->Run As-->Open Run Dialog或者Run Configurations-->Arguments-->VM arguments中输入下面参数-->Apply-->close
    	-Djava.endorsed.dirs=C:apache-cxf-2.5.2libendorsed
    	然后重新运行main方法即可

    文章结束给大家分享下程序员的一些笑话语录: 看到有人回帖“不顶不是中国人”,他的本意是想让帖子沉了。

    --------------------------------- 原创文章 By
    目录和启动
    ---------------------------------

  • 相关阅读:
    图文讲解ImageView的ScaleType
    android问题总结:
    芯片介绍
    js正则表达式中/=s*".*?"/g表示什么意思?
    fidder配置 https设置 手机客户端
    JAVAAndroid 多线程实现方式及并发与同步
    多线程之问题总结
    html_学习地址
    java保留小数后两位的四种写法
    Glide 加载部分圆角图片
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3150301.html
Copyright © 2011-2022 走看看