java - Apache CXF 依赖项
问题描述
我们正在升级我们的 JDK(Tomcat),我们将 CXF 从 2.4.0 升级到 3.2.12,我们得到一个错误,通过添加-Dorg.apache.cxf.stax.allowInsecureParser=1
作为基于此CXF Web 服务客户端的 JVM 参数来修复:“无法创建一个安全的 XMLInputFactory”,但我认为这不是正确的做法。任何人都可以提出任何其他合理的解决方案吗?
javax.xml.ws.soap.SOAPFaultException: Cannot create a secure XMLInputFactory
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:157)
at $Proxy38.printString(Unknown Source)
at ExampleNmsWebServiceClient.printString(ExampleNmsWebServiceClient.java:29)
at ExampleNmsWebServiceClient.main(ExampleNmsWebServiceClient.java:40)
Caused by: org.apache.cxf.binding.soap.SoapFault: Cannot create a secure XMLInputFactory
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:835)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1606)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1502)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627)
解决方案
您需要将 Woodstox 添加到类路径中,请参阅此处接受的答案:https ://stackoverflow.com/a/24603135/3745288
推荐阅读
- ios - 地图注解重用
- ios - 使用自动布局删除 UILabel 的空白空间
- javascript - JS嵌套问题,变量以任何方式返回未识别
- powershell - Powershell:递归替换所有.ini文件中的字符串
- php - 为每一列添加一个标题
- android - 将匕首子组件注入活动的问题
- python - 如何使用 pywin32 包中的combrowser.py?
- angularjs - ng-click 中的 concat 字符串参数
- javascript - JavaScript - 如何添加一个作为内置原型函数的函数
- javascript - 带有 OrbitControls 的 SVGRenderer 在对面显示两个 SVG 元素