当前位置:首页 > 开发 > 研发管理 > 正文

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

发表于: 2014-12-10   作者:coral0212   来源:转载   浏览次数:
摘要: 第一种:常规解决办法,也就是大多数网上看到的办法,获取到endorsed目录. public class MainClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub

第一种:常规解决办法,也就是大多数网上看到的办法,获取到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版本即可解决矛盾,这里没有实践,希望实践过的同学给个肯定的答复.谢谢!

 

 

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
  在实现引导加载器之前,首先我们先了解下在开机之后系统是怎么被引导的,这对于实现引导加载器
概述 public abstract class ClassLoader extends Object 类加载器是负责加载类的对象。ClassLoader
1,什么是类加载器? 加载类的工具. 2,类加载器有什么作用? 当程序需要的某个类,那么需要通过类加载器
转:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 类加载器是 Java 语言的一个创
一篇好文章:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 类加载器是 Java 语言
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classlo
jvm classLoader architecture : a, Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录
其他参考: 1 http://gzcj.iteye.com/blog/394648 2 http://blog.sina.com.cn/s/blog_5f1fe33f0100d9
其他参考: 1 http://gzcj.iteye.com/blog/394648 2 http://blog.sina.com.cn/s/blog_5f1fe33f0100d9
静态库、动态连接库 程序编制一般需经编辑、编译、连接、加载和运行几个步骤。在我们的应用中,有一
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号