WebService CXF调试常见报错及解决方案

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_codepboss_fjfjpbosssrc -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用该参数即可解决

原文地址:https://www.cnblogs.com/dbaxyx/p/5882725.html