Cannot create a secure XMLInputFactory --CXF调用出错

http://www.th7.cn/Program/java/201604/839945.shtml

百度之后网上流传了两种解决办法:


缺少了两个jar包 stax2-api-3.1.x.jar 和 woodstox-core-asl-4.2.x.jar;


原因是 客户端 与服务端的 接口包名不一致 造成的;



首先我往项目里面加了第一点的两个jar包,仍旧报错。。。。


对于第二点,我单独建立一个web项目,调用代码可以正常运行【客户端 与服务端的 接口包名仍旧不一致】,但是在我项目里面就继续报错;



对于以上两点均排查完,表示不是上述原因;


后google之,在stackoverflow找到一篇相同提问文章,有一回复解决了此问题:


在调用方法前加上下面三句即可调用成功:


import java.util.Properties;


Properties props = System.getProperties(); props.setProperty("org.apache.cxf.stax.allowInsecureParser", "1"); props.setProperty("UseSunHttpHandler", "true");



分享一下,希望对大家有所帮助;





补充:----------------------------


后来发现这个警告...包冲突,删除前面的包应该就可以了,加上上面那个三行也行;


Could not create a secure Stax XMLInputFactory. Found class com.ctc.wstx.stax.WstxInputFactory. Suggest Woodstox 4.2.0 or newer.



补充:----------------------------


或者将woodstox-core-asl-4.4.0.jar这个jar包前面加上前缀abc什么的,让他jar包排名提前,conger优先加载接口,也不用添加上述三行代码(代码意思应该也是让它优先加载)

cxf报错 javax/wsdl/WSDLException Cannot create a secure XMLInputFactory

09-06

最近需要配合其他系统做接口,开始使用cxf的webservices,rn JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); rn org.apache.cxf.endpoint.Client client = dcf.createClient("http://10.212.165.212:8081/epointshwebservice/services/EpointWithZiCaiWebService?wsdl");rnrn之前是可以正常调用的,但是我在调用另外的接口时,用myeclipse的webservices Client创建了客户端,rn回过头来看,就发现原来可以调用的cxf接口不断的报错。rn就是在创建client时,尤其是这个Cannot create a secure XMLInputFactory,让人无比头大,rnrnorg.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.rn at org.apache.cxf.wsdl11.WSDLServiceFactory.(WSDLServiceFactory.java:86)rn at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:295)rn at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:240)rn at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:233)rn at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:188)rn at org.cxf.aa.invokeBR_TKtzWebService(aa.java:54)rn at org.cxf.aa.main(aa.java:12)rnCaused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactoryrn at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:264)rn at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:206)rn at org.apache.cxf.wsdl11.WSDLServiceFactory.(WSDLServiceFactory.java:84)rn ... 6 morernCaused by: java.lang.RuntimeException: Cannot create a secure XMLInputFactoryrn at org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:315)rn at org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:265)rn at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1774)rn at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1673)rn at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:254)rn ... 8 morernrn[img=http://img.bbs.csdn.net/upload/201609/06/1473143806_836290.jpg][/img]rnrnrnrn然后我从网上不断搜索了一天多,rn主要说的问题就是缺少jar包或者jar包冲突,rn感谢提供cxf所需所有jar包 :http://blog.sina.com.cn/s/blog_ae48aad60101ck4e.htmlrn感谢该帖30楼提供的jar包冲突思路。http://bbs.csdn.net/topics/390491260rnrn我又按照网上所说全部操作了一遍,发现并不缺少jar包,然后把可能冲突的包删掉,依然无果,rnrn又在网上无限搜索和操作后,rn我感觉到我遇见了一个大多数人都没有遇见的问题,rn只好另辟蹊径,新建一个工程后,导入所有cxf需要的jar包,调用接口,是可以调通的,rnrn[img=http://img.bbs.csdn.net/upload/201609/06/1473144125_758647.jpg][/img]rnrn采取终极方案,排查原有项目的jar包,全部删除,只留下cxf相关的包,依然无果。接着开始删除系统liberty,rn最后终于发现,删除 之后,可以调用成功了,罪魁祸首就在这里。rnrn[img=http://img.bbs.csdn.net/upload/201609/06/1473144815_611608.jpg][/img]rnrn[img=http://img.bbs.csdn.net/upload/201609/06/1473144801_367369.jpg][/img]rnrnrnrn这是在用myeclipse自动生成客户端时产生的,郁闷,还是用soapui生成cxf的客户端吧。rnrn[img=http://img.bbs.csdn.net/upload/201609/06/1473144876_805880.jpg][/img]rnrnrnrnrnrnrn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试