热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CXF故障拦截器记录soap错误消息,如soap客户端中所示

我正在使用apacheCXF(春季启动)来开发我的soap服务器。在这里,我需要以完全在任何

我正在使用apache CXF(春季启动)来开发我的soap服务器。在这里,我需要以完全在任何soap客户端中显示的方式(例如:Soap UI)将错误消息记录在soap Fault拦截器中。如何在故障拦截器中记录相同的输出?现在它只是显示异常详细信息

输入




test



输出(显示在soap客户端中)

UserNotfound异常是代码中引发的自定义异常




soap:Server
Fault occurred while processing.



U-123
TestUser






我的自定义拦截器代码

import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.phase.Phase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CustomSoapFaultInterceptor extends AbstractSoapInterceptor{
private static final Logger logger = LoggerFactory.getLogger(CustomSoapFaultInterceptor.class);
public CustomSoapFaultInterceptor() {
super(Phase.PRE_STREAM);
}
@Override
public void handleMessage(SoapMessage soapMessage) throws Fault {
Fault fault = (Fault) soapMessage.getcontent(Exception.class);
Throwable faultCause = fault.getcause();
String faultMessage = fault.toString();
logger.error("Test Error",fault);
}
}



您可以使用集成的日志记录工具:https://cxf.apache.org/docs/message-logging.html

该代码可在GitHub上使用,以防您需要扩展它:https://github.com/apache/cxf/blob/master/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/LoggingFeature.java


推荐阅读
author-avatar
冬瓜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有