方案一:实现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>
相关推荐
10. **异常处理**:通过自定义异常处理器,我们可以规范化REST服务的错误响应,提供统一的错误信息格式。 通过这个“Spring CXF Restful实例”,开发者将学习到如何在Spring环境中使用CXF构建高效、可维护的RESTful...
错误处理:可以定义全局的`@Provider`类来处理HTTP错误码和异常。\n\n五、CXF RESTful服务与CXF_WS文件\n在提供的压缩包文件`CXF_WS`中,可能包含了用于创建和运行CXF RESTful服务的相关文件,如Java源代码、配置...
- **异常处理**:自定义异常类和使用`@Provider`注解的异常处理器,统一处理服务中的异常。 - **JSON和XML支持**:CXF内置了对JSON和XML的支持,可以通过`@Consumes`和`@Produces`注解指定输入和输出格式。 - **安全...
JAX-RS 2.0是CXF 3.x系列支持的版本,它引入了许多新功能,如异步处理、统一异常处理和链接构造等。 在创建RESTful服务时,我们可以使用`@Path`注解来指定服务的URI模板,`@GET`、`@POST`、`@PUT`、`@DELETE`等注解...
7. **高级特性**:CXF还支持更复杂的功能,如数据绑定、异常处理、安全认证等。例如,可以使用JAXB来自动将JSON或XML与Java对象互相转换。 总的来说,Apache CXF为开发者提供了强大的工具,使得构建RESTful Web ...
Spring可以帮助统一处理CXF服务抛出的异常,通过配置异常处理器,将服务层的异常转化为符合Web服务标准的响应。 6. **测试** Spring Test库可以配合CXF测试框架,对服务进行单元测试和集成测试,确保服务功能的...
6. **异常处理**:Spring和CXF结合,可以统一处理服务调用中的异常,提供更优雅的错误处理机制。 7. **测试支持**:Spring的测试框架可以很方便地对整合后的CXF服务进行单元测试和集成测试,确保服务的正确性。 在...
6. **异常处理**:通过Spring的AOP和CXF的异常映射机制,可以统一处理服务调用中的异常,返回合适的错误信息。 学习这些内容后,开发者将能够熟练地使用CXF框架和Spring框架来构建和发布高质量的Web服务,同时也能...
1. **CXF简介**:CXF最初由两个独立的项目Axiom和XFire合并而成,它提供了一个统一的API来处理SOAP和REST服务,降低了开发者在两者之间切换的难度。CXF支持WSDL(Web Service Definition Language)优先和Java优先两...
例如,可以使用 Spring Security 进行认证和授权,通过 AOP 实现统一的日志记录,或者自定义 CXF 异常处理器。 总的来说,CXF 与 Spring 的整合让 Web 服务的开发变得更加简单和高效。通过 Spring 的容器管理和配置...
- **异常处理**: 使用CXF的异常处理器和Spring的AOP来统一处理服务调用中的异常。 - **消息转换**: Spring与CXF结合,可以方便地使用各种消息格式,如XML、JSON等。 - **服务版本控制**: 实现服务版本管理,以适应...
4. **异常处理**:CXF提供了自定义异常处理的能力,你可以定义全局或特定服务的异常处理器。 5. **拦截器和行为**:CXF允许使用拦截器和行为来扩展其功能,例如日志记录、安全检查、性能监控等。这些可以在Spring...
CXF这个名字是"Confusing eXtensible Framework"的缩写,它旨在简化和融合不同技术栈,提供一个统一的开发体验。在本讨论中,我们将深入探讨Apache CXF 2.2.9版本的特性、用途以及包含的组件。 **1. CXF的概述** ...
5. **处理异常**:在调用过程中,需要捕获可能出现的网络异常、协议异常等,并进行适当的处理。 在压缩包文件“webserviceClient”中,可能包含了示例代码、配置文件和相关文档,帮助开发者了解和学习CXF客户端的...
6. **异常处理**:CXF和Spring结合时,可以利用Spring的AOP功能进行全局异常处理,统一捕获并处理Web服务调用中的异常。 7. **安全控制**:通过Spring Security或CXF自身的安全模块,可以实现对Web服务的认证和授权...
通过对源码的学习,开发者可以深入了解CXF的工作流程,例如消息处理、异常处理、安全机制等,并能根据需求定制自己的Web服务框架。同时,对于希望贡献CXF项目或进行二次开发的人来说,源码也是不可或缺的参考资料。
- **异常处理**:Spring可以统一处理CXF服务抛出的异常,提供更友好的错误信息。 综上所述,整合CXF和Spring可以简化Web服务的开发和管理,同时利用Spring的强大功能来增强服务的可维护性和可扩展性。通过上述步骤...
通过这个“cxf 完整的服务端客户端”示例,你可以深入理解 CXF 如何处理服务发布、服务消费、数据绑定、异常处理等核心功能,并能更好地掌握 Web 服务的开发流程。同时,对于理解和使用其他基于 Java 的 Web 服务...
6. **异常处理**:Spring和CXF的结合允许我们统一处理Web服务的异常,通过AOP(面向切面编程)定义全局异常处理器,提高代码的可维护性。 7. **测试**:通过JUnit或类似的测试框架,可以编写单元测试来验证Web服务...
CXF提供了一套全面的异常处理机制,可以将服务端的错误信息转换为有意义的异常。同时,CXF的日志记录功能可以帮助开发者调试和监控服务的运行状态,支持常见的日志框架如Log4j和Java Util Logging。 总之,Apache ...