org.apache.cxf.interceptor.Fault: Unmarshalling Error: Zero length BigInteger
时间: 2023-11-27 16:04:07 浏览: 80
这个错误通常是由于接收到的 XML 请求中包含了一个长度为零的 BigInteger 类型的值,导致 CXF 在解析 XML 时无法将其转换成正确的数据类型。要解决这个问题,你需要检查你的请求数据,确认其中是否有包含长度为零的 BigInteger 类型的值,并且确保正确处理这些情况。如果你无法确定具体的请求数据,你可以启用 CXF 的详细日志记录来捕获更多的信息,以便更好地诊断和解决这个问题。
相关问题
七月 12, 2023 11:02:49 下午 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 信息: Creating Service {http://crm.sipm.com/}CrmServiceService from class com.sipm.crm.CrmService 七月 12, 2023 11:02:50 下午 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 警告: Interceptor for {http://crm.sipm.com/}CrmServiceService#{http://crm.sipm.com/}createCrmAction has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Marshalling Error: null
这段日志的内容显示了一个警告信息,其中包含了一些关于使用Apache CXF构建服务的细节。具体来说,警告信息显示在调用CrmServiceService的createCrmAction方法时发生了一个异常(org.apache.cxf.interceptor.Fault),并且该异常是由于序列化错误(Marshalling Error)引起的。然而,关于引发序列化错误的具体原因,日志中并没有提供更多的信息(null)。如果你需要更详细的信息以找出问题的根本原因,可能需要进一步检查代码和配置。
morg.apache.cxf.interceptor.fault: marshalling error: error writing request
这个错误通常是由于在使用 CXF 进行 Web Service 调用时,无法将请求对象序列化为 XML 造成的。可能会有多种原因,例如请求对象中的属性没有正确的 get/set 方法、请求对象中的某些属性没有正确的注释等。
解决方案:
1. 检查请求对象中的属性是否都有正确的 get/set 方法。
2. 检查请求对象中的属性是否都有正确的注释。例如,如果属性名为 name,则注释应该为 @XmlElement(name = "name")。
3. 如果请求对象中有复杂类型的属性,确保这些复杂类型也正确注释。
4. 检查请求对象中是否有无法序列化的属性类型,如 Thread 等。
5. 检查请求对象是否实现了 Serializable 接口。
6. 如果还是无法解决问题,可以尝试使用 CXF 提供的 logging 特性来查看详细的错误信息,以便更好的定位问题。
阅读全文