首页 > 其他 > 详细

cxf 异常总结

时间:2014-04-19 02:25:56      阅读:624      评论:0      收藏:0      [点我收藏+]

最近2周,由于需要,转而研究异常。


主要心得,体会如下。全是干货。


初步要求:

1.自定义异常

2.建立异常体系结构



1.在cxf中,有一个专门抛异常的 WebApplicationException(javax.ws.rs.WebApplicationException;)作为我们自定义异常的父类。返回的类型是Response形式给Client。


import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
//import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
public class NotFoundException extends WebApplicationException {
     /**
     *
     */
    private static final long serialVersionUID = 1L;
    public NotFoundException(String message) {
         super(Response.status(Response.Status.NOT_FOUND)
             .entity(message).type(MediaType.TEXT_PLAIN_TYPE).build());
     }
}

其中的type(MediaType.TEXT_PLAIN_TYPE)其实可以不要,因为在之前的注解中已经定义了@Produces("application/json").所以影响不大。

在这个异常类中,我定义的是传递的是String。


在使用的时候

if (itemid.isEmpty() || entid.isEmpty()) {
                                                                                                                                                                                                                                            
            throw new NotFoundException("not found");
            /*
                ResponseBuilderImpl builder = new ResponseBuilderImpl(); 
                builder.status(Response.Status.NOT_FOUND); 
                builder.entity("The requested resource is not found.");
                Response response = builder.build(); 
                throw new WebApplicationException(response);
             */
        } else {
            .....
            Response.status(Status.NO_CONTENT).build();
                                                                                                                                                                                                                                            
        }


注释掉的就是刚才的自定义原形。。(说法不准确,不过效果一样。)


2.这个也只是一个大概,要根据项目模块来划分,初步设想的是将返回的entity中添加自定义的错误Errsubcode,和ErrMessage。跟据有多少模块来定义自己的Errsubcode。


遗留问题:

1.怎么精确定位到出现异常的代码?而不是大段大段的try-catch.

2.然后将出现的异常进行转译。成符合要求的异常(errsubcode添加)

//可能需要添加一个entity什么的,需要参考GenericEntity这个。目前还没用过。。




本文出自 “striby” 博客,请务必保留此出处http://striby.blog.51cto.com/6412152/1397818

cxf 异常总结,布布扣,bubuko.com

cxf 异常总结

原文:http://striby.blog.51cto.com/6412152/1397818

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!