`
raymond.chen
  • 浏览: 1425667 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CXF RESTful异常统一处理

 
阅读更多

方案一:实现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>

 

 

分享到:
评论

相关推荐

    CXF源码:CXF_Spring源码

    Spring可以帮助统一处理CXF服务抛出的异常,通过配置异常处理器,将服务层的异常转化为符合Web服务标准的响应。 6. **测试** Spring Test库可以配合CXF测试框架,对服务进行单元测试和集成测试,确保服务功能的...

    cxf WebService

    1. **CXF简介**:CXF最初由两个独立的项目Axiom和XFire合并而成,它提供了一个统一的API来处理SOAP和REST服务,降低了开发者在两者之间切换的难度。CXF支持WSDL(Web Service Definition Language)优先和Java优先两...

    CXF整合Spring步骤

    例如,可以使用 Spring Security 进行认证和授权,通过 AOP 实现统一的日志记录,或者自定义 CXF 异常处理器。 总的来说,CXF 与 Spring 的整合让 Web 服务的开发变得更加简单和高效。通过 Spring 的容器管理和配置...

    CXF+Spring 完整版例子

    4. **异常处理**:CXF提供了自定义异常处理的能力,你可以定义全局或特定服务的异常处理器。 5. **拦截器和行为**:CXF允许使用拦截器和行为来扩展其功能,例如日志记录、安全检查、性能监控等。这些可以在Spring...

    apache-cxf-2.2.9

    CXF这个名字是"Confusing eXtensible Framework"的缩写,它旨在简化和融合不同技术栈,提供一个统一的开发体验。在本讨论中,我们将深入探讨Apache CXF 2.2.9版本的特性、用途以及包含的组件。 **1. CXF的概述** ...

    CXF整合Spring

    - **异常处理**:Spring可以统一处理CXF服务抛出的异常,提供更友好的错误信息。 综上所述,整合CXF和Spring可以简化Web服务的开发和管理,同时利用Spring的强大功能来增强服务的可维护性和可扩展性。通过上述步骤...

    spring-cxf WebService

    2. 异常处理:定义全局异常处理器,统一处理服务调用过程中的异常,提高服务的健壮性。 3. 性能优化:使用缓存、连接池等技术提高服务响应速度,通过监控和调优工具优化服务性能。 4. 日志和跟踪:通过集成日志框架...

    spring+cxf 集成

    8. **异常处理和安全控制**:Spring可以帮助我们进行统一的异常处理,比如通过全局的异常处理器。此外,还可以结合Spring的安全框架,如Spring Security,来实现Web服务的安全控制,如认证和授权。 9. **性能优化**...

    使用CAS整合CXF实现单点登录部署步骤

    而CXF是一个流行的Java Web服务框架,它支持SOAP、RESTful等多种Web服务标准。本文将详细介绍如何使用CAS整合CXF,实现基于Tomcat服务器的单点登录部署步骤。 首先,我们需要在Tomcat服务器上部署CAS项目。这通常...

    webservice客户端,整合spring

    Spring和CXF结合使用时,可以统一处理Web Service调用中的异常,将其转化为自定义的业务异常,便于应用层进行适配和处理。 9. **安全考虑**: 整合Spring Security和CXF,可以实现对Web Service调用的安全控制,...

    Web Service开发指南.pdf

    - CXF不仅支持SOAP,还支持RESTful Web服务,提供了一种统一的API来处理两种类型的接口。 - CXF提供强大的WS-*规范支持,如WS-Security、WS-Addressing等,增强了Web服务的安全性和可靠性。 - CXF的JAX-RS(Java ...

    Web_Service开发指南.rar

    3. 强大的异常处理机制:XFIE提供了与Web服务相关的异常处理。 四、CXF篇 Apache CXF是一个开源的Web服务框架,它合并了XFire和Apache Axis2项目,旨在提供一个更强大、更易用的Web服务开发平台。CXF支持多种协议和...

Global site tag (gtag.js) - Google Analytics