方案一:实现ExceptionMapper接口类,并配置到providers中。
public class ServiceExceptionMapper implements ExceptionMapper<RuntimeException> { private Logger log = Logger.getLogger(ServiceExceptionMapper.class); @Override public Response toResponse(RuntimeException ex) { log.error("error", ex); ExceptionResponseEntity entity = new ExceptionResponseEntity(); entity.setCode("error"); entity.setMessage(ex.getMessage()); //entity.setDetails(getStackTraceString(ex)); String contentType = "application/json; charset=UTF-8"; ResponseBuilder builder = Response.status(Response.Status.INTERNAL_SERVER_ERROR); builder.type(contentType); builder.entity(entity); builder.language(Locale.SIMPLIFIED_CHINESE); Response res = builder.build(); return res; } private String getStackTraceString(RuntimeException ex){ StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); ex.printStackTrace(pw); return sw.toString(); } }
注意:默认情况下entity中的中文内容是以iso-8859-1字符编码返回的,客户端显示可能会出现乱码,需要做编码转换处理。
<bean id="serviceExceptionMapper" class="com.xxx.ServiceExceptionMapper"/> <jaxrs:server id="serviceContainer" address="/"> <jaxrs:serviceBeans> </jaxrs:serviceBeans> <jaxrs:providers> <ref bean="jaxbProvider" /> <ref bean="jsonProvider" /> <ref bean="serviceExceptionMapper" /> </jaxrs:providers> </jaxrs:server>
相关推荐
Spring可以帮助统一处理CXF服务抛出的异常,通过配置异常处理器,将服务层的异常转化为符合Web服务标准的响应。 6. **测试** Spring Test库可以配合CXF测试框架,对服务进行单元测试和集成测试,确保服务功能的...
1. **CXF简介**:CXF最初由两个独立的项目Axiom和XFire合并而成,它提供了一个统一的API来处理SOAP和REST服务,降低了开发者在两者之间切换的难度。CXF支持WSDL(Web Service Definition Language)优先和Java优先两...
例如,可以使用 Spring Security 进行认证和授权,通过 AOP 实现统一的日志记录,或者自定义 CXF 异常处理器。 总的来说,CXF 与 Spring 的整合让 Web 服务的开发变得更加简单和高效。通过 Spring 的容器管理和配置...
4. **异常处理**:CXF提供了自定义异常处理的能力,你可以定义全局或特定服务的异常处理器。 5. **拦截器和行为**:CXF允许使用拦截器和行为来扩展其功能,例如日志记录、安全检查、性能监控等。这些可以在Spring...
CXF这个名字是"Confusing eXtensible Framework"的缩写,它旨在简化和融合不同技术栈,提供一个统一的开发体验。在本讨论中,我们将深入探讨Apache CXF 2.2.9版本的特性、用途以及包含的组件。 **1. CXF的概述** ...
- **异常处理**:Spring可以统一处理CXF服务抛出的异常,提供更友好的错误信息。 综上所述,整合CXF和Spring可以简化Web服务的开发和管理,同时利用Spring的强大功能来增强服务的可维护性和可扩展性。通过上述步骤...
2. 异常处理:定义全局异常处理器,统一处理服务调用过程中的异常,提高服务的健壮性。 3. 性能优化:使用缓存、连接池等技术提高服务响应速度,通过监控和调优工具优化服务性能。 4. 日志和跟踪:通过集成日志框架...
8. **异常处理和安全控制**:Spring可以帮助我们进行统一的异常处理,比如通过全局的异常处理器。此外,还可以结合Spring的安全框架,如Spring Security,来实现Web服务的安全控制,如认证和授权。 9. **性能优化**...
而CXF是一个流行的Java Web服务框架,它支持SOAP、RESTful等多种Web服务标准。本文将详细介绍如何使用CAS整合CXF,实现基于Tomcat服务器的单点登录部署步骤。 首先,我们需要在Tomcat服务器上部署CAS项目。这通常...
Spring和CXF结合使用时,可以统一处理Web Service调用中的异常,将其转化为自定义的业务异常,便于应用层进行适配和处理。 9. **安全考虑**: 整合Spring Security和CXF,可以实现对Web Service调用的安全控制,...
- CXF不仅支持SOAP,还支持RESTful Web服务,提供了一种统一的API来处理两种类型的接口。 - CXF提供强大的WS-*规范支持,如WS-Security、WS-Addressing等,增强了Web服务的安全性和可靠性。 - CXF的JAX-RS(Java ...
3. 强大的异常处理机制:XFIE提供了与Web服务相关的异常处理。 四、CXF篇 Apache CXF是一个开源的Web服务框架,它合并了XFire和Apache Axis2项目,旨在提供一个更强大、更易用的Web服务开发平台。CXF支持多种协议和...