1. 程式人生 > >CXF開發WEBSERVICE異常解決【Cannot create a secure XMLInputFactory】

CXF開發WEBSERVICE異常解決【Cannot create a secure XMLInputFactory】

最近的一個專案需要對外提供webservice介面,專案部署後,客戶端訪問報錯:Cannot create a secure XMLInputFactory,當時領導催著趕進度,真讓人頭大,有如下解決方案:

方案一

新增如下依賴:

<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>stax2-api</artifactId>
    <version>4.0.0</version>
</dependency>
<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>woodstox-core-asl</artifactId>
    <version>4.4.1</version>
</dependency>

方案二

  • 調整jar包載入順序

方案XXX

** @@@@@@@@ **

終極方案

  • 新增監聽器
public class SealManageListener implements ServletContextListener {

    private static final Logger logger = LoggerFactory.getLogger(SealManageListener.class);

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {

    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        Properties props = System.getProperties();
        props.setProperty("org.apache.cxf.stax.allowInsecureParser", "1");
        logger.debug("系統初始化設定.....");
        props.setProperty("UseSunHttpHandler", "true");
    }
}
  • 再新增web.xml的配置
<listener>
    <listener-class>xxx.xxx.xxx.filter.SealManageListener</listener-class>
</listener>

更多方案請參考