cxf客戶端調用問題

wmhx 14年前發布 | 4K 次閱讀

<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=center>cxf客戶端調用問題</P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>1.現象:</P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/D:/jb_program/cxf/WebRoot/WEB-INF/lib/jaxb-impl-2.1.12.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 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/>)</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>o:p /o:p</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>2.處理</P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>參考文章:http://lxj8495138.javaeye.com/blog/338384</FONT></SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>1)檢測放置路徑</P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>public class Test {</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>    public static void main(String[] args) {</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>   System.out.println(System.getProperty("java.endorsed.dirs"));</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>  }</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>}</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>假如輸出結果D:\jdk1.5.0_13\jre\lib\endorsed</FONT></SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>2)將apache-cxf-2.2.7lib下的jaxb-api-2.1.jargeronimo-jaxws_2.1_spec-1.0.jar (or Sun's jaxws-api-2.1.jar)拷貝到jre\lib\endorsed</P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>3)注意在eclipse環境下,jre運行環境放置到前面</P><SPAN lang=EN-US>o:p

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left><SPAN style="FONT-FAMILY: 宋體; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋體" lang=EN-US>o:p /o:p</SPAN></P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left>3.原因</P>

<P style="TEXT-ALIGN: left; LINE-HEIGHT: normal; TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0; mso-layout-grid-align: none" class=MsoNormal align=left> Java SE 6 開始,<SPAN lang=EN-US>JAXB 2.x </SPAN>和<SPAN lang=EN-US> JAX-WS 2.x </SPAN>參考實現運行時(除了供應商擴展)成為標準<SPAN lang=EN-US> Java Runtime Environment (JRE) </SPAN>庫的一部分。其本意是鼓勵將這些技術作為<SPAN lang=EN-US> Java </SPAN>標準使用,但是這也帶來一個副作用:為了使用這些技術的更新的版本,可能需要更改<SPAN lang=EN-US> JRE </SPAN>的安裝。</SPAN><SPAN lang=EN-US>o:p/o:p</SPAN></P>

 

/o:p</SPAN></SPAN></FONT>

 本文由用戶 wmhx 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!