java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI(***

问题原因:在使用jserey搭建rest服务时出现的问题,提示信息:本身系统需要加载的是JAXB2.1,但实际加载的是2.0。

解决:查看了类路径,发现使用的就是jaxb2.1的jar包,因此需要替换掉目前加载的老版本。


步骤:

1.在java类中加入:System.out.println(System.getProperty("java.endorsed.dirs"));

2.在对应目录下加入下面两个jar。

3.重新启动项目,解决问题。

 jaxb-api-2.1.jar,jaxb-impl-2.1.13.jar



PS. 还有就是客户端网页请求参数为汉字时的乱码,解决方法为:修改tomcat conf 目录下 server.xml 中下面部分:

~~~~~~~~~~~~~~~~~~~~~~

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

~~~~~~~~~~~~~~~~~~~~~~~

增加 :URIEncoding="UTF-8"

修改为:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>

你可能感兴趣的:(java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI(***)