我得到了一个"无法创建安全的XMLInputFactory"使用SoapUI发送请求时出错,我尝试了一些stackoverflow提到的解决方案,比如添加woodstox和stax2-api,但问题仍然存在
来自build.gradle的:
compile 'org.codehaus.woodstox:woodstox-core-asl:4.4.1'
compile 'org.codehaus.woodstox:stax2-api:4.0.0'
compile 'org.apache.cxf:cxf-rt-frontend-jaxws:3.1.12'
compile 'org.apache.cxf:cxf-rt-ws-security:3.1.12'
compile 'org.apache.cxf:cxf-rt-transports-http:3.1.12'
以前使用woodstox-core工作,但开始抛出错误
compile 'com.fasterxml.woodstox:woodstox-core:5.0.3'
从以前的第3版解决方案来看,CXF甚至不需要woodstox,我也试过没有woodstox。
是否可以像axis2一样更新任何其他依赖项? 我应该在接下来的步骤中找到什么?谢谢
注意:使用tomcat 8.5.19
答案 0 :(得分:3)
所以解决方案发现,在SaxUtils.java,有人提到有一个
factory = XMLInputFactory.newInstance();
我们可以从哪里看到它。
在axis2中实际上存在冲突,因此排除了neethi
compile('org.apache.axis2:axis2-transport-http:1.5.1') {
exclude group: 'javax.servlet', module: 'servlet-api'
exclude module: 'XmlSchema'
exclude group: 'org.apache.neethi', module: 'neethi'
exclude group: 'org.codehaus.woodstox'
}
runtime ('org.apache.axis2:axis2-transport-local:1.5.1'){
exclude group: 'org.codehaus.woodstox', module: 'wstx-asl'
}
冲突消失了。
答案 1 :(得分:1)
我想与' dotmindlabs'确认。关于Axis2的问题。在实施Apache CXF 3.2.1时,我还使用了Axis2的一些软件包。我遇到了同样的问题"无法创建安全的XMLInputFactory"
该问题与其他库Axis2 Implements严格相关。
我在下面提供了解决此问题所需的依赖项(Maven)更改。
<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-transport-http -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.2</version>
<exclusions>
<exclusion>
<groupId>org.apache.ws.commons.schema</groupId>
<artifactId>XmlSchema</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.neethi</groupId>
<artifactId>neethi</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
</exclusion>
</exclusions>
</dependency>
我希望这可以帮助将来遇到这个问题的人。