1、CXF java.lang.RuntimeException: Cannot create a secure XMLInputFactory
解決方案:從apache-cxf/lib下尋找Woodstox jar包添加至buildpath
2、Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/stax2/XMLOutputFactory2
解決方案:缺少stax2-api jar包
3、FAULT received from BPEL process : {http://docs.oasis-open.org/wsbpel/2.0/process/executable}subLanguageExecutionFault org.apache.ode.utils.xsl.XslTransformException: TransformerException when transform XSL[sxlt_1.xsl]
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:158)
問題原因:由於webservice服務端要求接收的報文如xml統一在<xml?>頭與尾兩端加上<![CDATA[ 和 ]]>標簽標明中間xml當成一個普通的字符串,服務端拿到字符串后再解析,避免亂碼,但是代碼中調用時無需轉義加上<![CDATA[反而報如上錯誤。
4、根據WSDL URL生成客戶端代碼
wsdl2java -p com.ai.sfframe.webservice.ossClient -frontend jaxws21 -d L:\work_code\pboss_fj\fjpboss\src -verbose http://192.168.160.186:8015/owork/services/address?wsdl
1)首先需要從apache官網下載apache-cxf*version包,並解壓到自己指定的路徑,然后配置環境變量,此處不做描述,自行搜索引擎即可
解釋如上參數:
-d 指定eclipse中我們工程所在路徑(是src路徑)
-p指定src路徑下包的子路徑如com.*.*
-frontend jaxws21 cxf2.6.*跟jdk 1.6有沖突,生成客戶端代碼是super(WSDL_LOCATION, SERVICE, features);多了個features用該參數即可解決