CXF启动报告LinkageError异常以及Java的endorsed机制
2013-06-22 16:40
603 查看
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.zip\apache-cxf-2.5.2\lib\endorsed目录中取得 2)不是让你把下载到的jar放到%J***A_HOME%/lib/endorsed/目录下,而是应该自己找到正确的目录 目录:找到正确目录的方法,还要根据JavaProject还是JavaWebProject而不同 1)如果是JavaProject就简单多了,直接在main方法里执行System.out.println(System.getProperty("java.endorsed.dirs")); 我的电脑上显示的目录地址是这个D:\Develop\Java\jdk1.6.0_45\jre\lib\endorsed 2)如果是JavaWebProject就要启动一个没有用到jaxb的Web项目,然后在jsp中执行<%=System.getProperty("java.endorsed.dirs")%> 我的电脑上显示的目录地址是这个D:\Develop\apache-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.2\lib\endorsed 然后重新运行main方法即可
相关文章推荐
- 目录启动CXF启动报告LinkageError异常以及Java的endorsed机制
- java锁机制简介以及CAS操作
- 转:Java异常分类以及相应处理机制
- java 动态绑定 以及 内部实现机制
- activeMQ启动错误,引出的java endorsed目录问题。
- Linux后台启动程序以及打开XShell连接运行java -jar然后关闭连接程序不再运行问题
- java垃圾回收机制,以及常用的回收算法
- Ubuntu下经典JAVA开发环境搭建 以及 Ubuntu中如何在桌面、启动面板以及应用程序菜单上添加图标
- (十三)Core Java GUI(图形化界面小程序开发,事件监听机制流程,以及可运行jar包的配置实现,) (109)
- Java获取系统环境变量(System Environment Variable)和系统属性(System Properties)以及启动参数的方法
- 栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
- 【Java基础】Hibernate的缓存机制以及延迟加载
- Good stuff, Bruce Eckel有关Java存在的问题以及未来方向的报告
- java 垃圾回收机制 以及垃圾回收机制的触发
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序
- java中的类的反射机制以及经典实例
- java集合04--fail fast机制原理以及解决办法
- java程序监控tomcat中部署的项目的状态以及控制某些项目的启动停止
- JAVA类项目如何开启远程DEBUG模式?TOMCAT,JETTY等容器启动也可以DEBUG,以及JAVA远程连接JMXREMOTE
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序