`
raymond.chen
  • 浏览: 1437030 次
  • 性别: 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>

 

 

分享到:
评论

相关推荐

    Spring CXF Restful 实例

    10. **异常处理**:通过自定义异常处理器,我们可以规范化REST服务的错误响应,提供统一的错误信息格式。 通过这个“Spring CXF Restful实例”,开发者将学习到如何在Spring环境中使用CXF构建高效、可维护的RESTful...

    CXF Restful服务简单例子

    错误处理:可以定义全局的`@Provider`类来处理HTTP错误码和异常。\n\n五、CXF RESTful服务与CXF_WS文件\n在提供的压缩包文件`CXF_WS`中,可能包含了用于创建和运行CXF RESTful服务的相关文件,如Java源代码、配置...

    CXF restful风格WebService

    - **异常处理**:自定义异常类和使用`@Provider`注解的异常处理器,统一处理服务中的异常。 - **JSON和XML支持**:CXF内置了对JSON和XML的支持,可以通过`@Consumes`和`@Produces`注解指定输入和输出格式。 - **安全...

    cxf3.1.4发布restful风格的web service

    JAX-RS 2.0是CXF 3.x系列支持的版本,它引入了许多新功能,如异步处理、统一异常处理和链接构造等。 在创建RESTful服务时,我们可以使用`@Path`注解来指定服务的URI模板,`@GET`、`@POST`、`@PUT`、`@DELETE`等注解...

    利用CXF发布restful WebService 研究

    7. **高级特性**:CXF还支持更复杂的功能,如数据绑定、异常处理、安全认证等。例如,可以使用JAXB来自动将JSON或XML与Java对象互相转换。 总的来说,Apache CXF为开发者提供了强大的工具,使得构建RESTful Web ...

    CXF源码:CXF_Spring源码

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

    spring+cxf 整合jar包

    6. **异常处理**:Spring和CXF结合,可以统一处理服务调用中的异常,提供更优雅的错误处理机制。 7. **测试支持**:Spring的测试框架可以很方便地对整合后的CXF服务进行单元测试和集成测试,确保服务的正确性。 在...

    CXF框架发布webservice

    6. **异常处理**:通过Spring的AOP和CXF的异常映射机制,可以统一处理服务调用中的异常,返回合适的错误信息。 学习这些内容后,开发者将能够熟练地使用CXF框架和Spring框架来构建和发布高质量的Web服务,同时也能...

    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 的容器管理和配置...

    Spring3整合CXF2.7.10

    - **异常处理**: 使用CXF的异常处理器和Spring的AOP来统一处理服务调用中的异常。 - **消息转换**: Spring与CXF结合,可以方便地使用各种消息格式,如XML、JSON等。 - **服务版本控制**: 实现服务版本管理,以适应...

    CXF+Spring 完整版例子

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

    apache-cxf-2.2.9

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

    cxf开发实例2

    5. **处理异常**:在调用过程中,需要捕获可能出现的网络异常、协议异常等,并进行适当的处理。 在压缩包文件“webserviceClient”中,可能包含了示例代码、配置文件和相关文档,帮助开发者了解和学习CXF客户端的...

    cxf+spring实现webservice

    6. **异常处理**:CXF和Spring结合时,可以利用Spring的AOP功能进行全局异常处理,统一捕获并处理Web服务调用中的异常。 7. **安全控制**:通过Spring Security或CXF自身的安全模块,可以实现对Web服务的认证和授权...

    apache-cxf-2.7.18-src.zip 源码

    通过对源码的学习,开发者可以深入了解CXF的工作流程,例如消息处理、异常处理、安全机制等,并能根据需求定制自己的Web服务框架。同时,对于希望贡献CXF项目或进行二次开发的人来说,源码也是不可或缺的参考资料。

    CXF整合Spring

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

    cxf 完整的服务端客户端

    通过这个“cxf 完整的服务端客户端”示例,你可以深入理解 CXF 如何处理服务发布、服务消费、数据绑定、异常处理等核心功能,并能更好地掌握 Web 服务的开发流程。同时,对于理解和使用其他基于 Java 的 Web 服务...

    webservice cxf 整合spring例子源代码

    6. **异常处理**:Spring和CXF的结合允许我们统一处理Web服务的异常,通过AOP(面向切面编程)定义全局异常处理器,提高代码的可维护性。 7. **测试**:通过JUnit或类似的测试框架,可以编写单元测试来验证Web服务...

    apache-CXF框架

    CXF提供了一套全面的异常处理机制,可以将服务端的错误信息转换为有意义的异常。同时,CXF的日志记录功能可以帮助开发者调试和监控服务的运行状态,支持常见的日志框架如Log4j和Java Util Logging。 总之,Apache ...

Global site tag (gtag.js) - Google Analytics