webService 接口调用问题
问题发生场景:公司项目做cxf升级有原来的cxf2.3 版本升级为cxf 2.7.18 版本,在进行webServcice 接口调用时出现 Cannot create a secure XMLInputFactory 的问题
解决方法:首先在查看 cxf官方文档:从 CXF 2.7.4 开始,CXF 现在需要使用 StAX 解析器,该解析器可以提供对传入 XML 大小的细粒度控制。当前唯一可用的解析器是 Woodstox 4.2 或更新版本。主要原因是存在一系列只能在 StAX 解析器级别阻止的 DOS 攻击。有一个“org.apache.cxf.stax.allowInsecureParser”系统属性可以设置为 true 以允许使用不安全的解析器,但强烈不推荐这样做,现在这样做也允许本节中描述的设置。
需要指定的解析器 Woodstox4.2 以及StAX-api的jar包的的导入,导入之后即可。但在我的项目中存在webService相关的jar(因为我看webService jar包中有woodstox相关的代码),故本人的操作是升级 webSeries 相关的jar 包,webServices-rt 以及webServices-api 升级至 2.4.0版本。问题解决,在此记录一下。