WebService接口调用时,出现java.lang.RuntimeException: org.apache.cxf.interceptor.Fault异常,求破解

2024-11-01 15:44:27
推荐回答(2个)
回答1:

关于这个错误,在开发调试过程中可以先通过辅助工具来观察它原始的 xml 内容是什么样的,这段 xml内容中包括一个 fault相关联的 xml 标签,里面记录着异常消息的原始文本,不管是哪个 web service API 它们要处理的 XML 内容是完全相同的标准。

但是如果这个异常是在你这个客户端本身抛出的而不是从远程服务端返回的那就复杂些,需要看其它的日志。像很多开源的软件都有一套日志,比如假设它使用了 log4j 啥的,我们就可以配置一个 log4j.properties 并把 org.apache.cxf 的 logger category 启用 all 或 debug 级别的日志输出,这也是一个观察 CXF 中间如何处理一个例外情况的分析方法。实在不行就找  CXF 的源码或反编译这个异常 Stack Trace 中提到的那几个类猜测一下可能的原因。

WebService几个常见的异常分类:

1、如果出现这个错误:java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException,原因是没有导入 axis2-saaj.jar包

2、如果出现这个错误:java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException,原因是没有导入 axis2-saaj.jar包

3、如果出现这个错误:org.apache.commons.logging.LogFactory,原因是没有导入commons-logging.jar包

4、如果出现这个错误:Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Error invoking (……) Nested exception is java.lang.reflect.InvocationTargetException: null,原因是代码上传到服务器时不完全导致的。

回答2:

exception 的内容是什么嘛?不会是这么简单的 "异常" 两个字吧,而且你看到的是中文的异常哦。

关于这个错误,我觉得你在开发调试过程中可以先通过辅助工具来观察它原始的 xml 内容是什么样的,这段 xml 内容中包括一个 fault 相关联的 xml 标签,里面记录着异常消息的原始文本,不管是哪个 web service API 它们要处理的 XML 内容是完全相同的标准。

而如果这个异常是在你这个客户端本身抛出的而不是从远程服务端返回的那就复杂些,需要看其它的日志。像很多开源的软件都有一套日志,比如假设它使用了 log4j 啥的,我们就可以配置一个 log4j.properties 并把 org.apache.cxf 的 logger category 启用 all 或 debug 级别的日志输出,这也是一个观察 CXF 中间如何处理一个例外情况的分析方法。实在不行就找 CXF 的源码或反编译这个异常 Stack Trace 中提到的那几个类猜测一下可能的原因。