从纯Java调用Apache CXF客户端时无法创建安全的XMLInputFactory [英] Cannot create a secure XMLInputFactory when calling Apache CXF Client from Plain Java

查看:151
本文介绍了从纯Java调用Apache CXF客户端时无法创建安全的XMLInputFactory的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正尝试从普通Java代码中调用Apache CXF服务,如下所示

I am trying to call a Apache CXF Service from a Plain Java code as follows

public static void main(String args[])
{
Call Apache CXF Service ....
}

我没有得到任何编译时错误,但出现了如下运行时异常

I dont get any compile time error, but getting Runtime exception as follows

Exception in thread "main" java.lang.RuntimeException: Cannot create a secure XMLInputFactory
    at org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:314)
    at org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:264)
    at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1457)
    at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1110)
    at org.apache.cxf.bus.extension.XmlExtensionFragmentParser.getExtensions(XmlExtensionFragmentParser.java:46)
    at org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:183)
    at org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:159)
    at org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:108)
    at org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:121)
    at org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:134)
    at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:40)
    at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:36)
    at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:32)
    at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:106)
    at org.apache.cxf.BusFactory.createThreadBus(BusFactory.java:243)
    at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:227)
    at org.apache.cxf.BusFactory.getThreadDefaultBus(BusFactory.java:214)
    at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:89)
    at javax.xml.ws.Service.<init>(Unknown Source)

我的依赖关系如下

cxf-rt-frontend-jaxws-2.7.12.jar
cxf-api-2.7.12.jar
woodstox-core-asl-4.4.0.jar
stax2-api-3.1.4.jar
xmlschema-core-2.1.0.jar
cxf-rt-core-2.7.12.jar
jaxb-impl-2.1.13.jar
cxf-rt-bindings-soap-2.7.12.jar
cxf-rt-databinding-jaxb-2.7.12.jar
cxf-rt-bindings-xml-2.7.12.jar
cxf-rt-frontend-simple-2.7.12.jar
cxf-rt-ws-addr-2.7.12.jar
cxf-rt-ws-policy-2.7.12.jar
cxf-rt-transports-http-2.7.12.jar

请帮助我解决此错误

注意:-我没有pom.xml.我使用传统的"lib"文件夹放置依赖的jars

Note:- I don't have pom.xml. I use traditional "lib" folder to place my dependent jars

推荐答案

我添加了这三行,并且工作正常

I added these three lines and worked fine

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

这篇关于从纯Java调用Apache CXF客户端时无法创建安全的XMLInputFactory的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆