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