java.lang.LinkageError: 正在从引导类加载器加载 JAXB 2.1 API终极解决方案

编程技术  /  houtizong 发布于 3年前   81

第一种:常规解决办法,也就是大多数网上看到的办法,获取到endorsed目录.

public class MainClass {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        System.out.println(System.getProperty("java.endorsed.dirs"));    }}

 找到相应位置,将apache-cxf-2.7.4\lib\endorsed下的jar文件放到对应目录下即可。如果没有endorsed目录,则手动建立该目录。其实就是两个jar包,geronimo-jaxws_2.2_spec-1.1.jar和jaxb-api-2.2.6.jar文件

 

2.第一种方法,很多人都说解决不了问题,可以考虑jdk的版本,我就遇到了安装了javase1.4.7,但是用java -version同样还是1.6的版本,所以这里环境变量和jdk-version都无效的,解决了版本的一致性,接下来看cxf的配置文件,这是最关键的,也是我遇到的坎,

<jaxws:endpoint id="surveyService"implementor="ws.cxf.impl.SurveyService" address="/SurveyWebService" />

 有了这句话在,在tomcat下启动,就同样还是引导包错误,尝试将上面两个jar放到tomcat/lib下,始终不起作用,但是配置文件另外一种方法,却是可以

<jaxrs:server id="categoryRESTService" address="/"><jaxrs:serviceBeans> <ref bean="categoryService" /></jaxrs:serviceBeans><jaxrs:extensionMappings>                   <entry key="json" value="application/json"/>                   <entry key="xml" value="application/xml"/>                </jaxrs:extensionMappings></jaxrs:server>

 遇到这种情况就是冲突了,要删除一个包,包引导路径错误,

删除项当下的lib中的包:jaxb-impl-2.2.5.jar,果不其然启动成功了,至于具体的原理没有详细了解过,囫囵吞枣吧,见谅!

 ps:java.lang.LinkageError引导类加载器加载 JAXB 2.1 AP,但是如果存在了jaxb-impl-2.2.5的jar包,引用2.2的api,第一个是应该是jdk引导的,后来是依赖本项目工程的,所以有的解决办法是升级到jdk7版本即可解决矛盾,这里没有实践,希望实践过的同学给个肯定的答复.谢谢!

 

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客