A-A+

WebService发布时,如何隐藏对象参数中的某个属性

2017年04月19日 Java 暂无评论 阅读 77 views 次
最近开发一个webservice接口如下,其中参数ApproveFeedBackInput对象中的requestBody属性要对客户端隐藏
,搜了很多webservice注解,只有排除接口方法的注解。最后在xml注解上找到了方法
public interface IIOPRequirementProcess {

    @WebMethod
    public @WebResult(name = "result")
    ApproveFeedBackOutput execute(
            @WebParam(name = "approveFeedBackInput") ApproveFeedBackInput in);

}

首先要理解webservice的发布说明书wsdl其实就是一张客户端的设计图,如果要隐藏某个对象的某个属性,实际就是将它从xml中移除,因此只要想办法移除它就行了。
实现这个效果需要用到以下两个JAXB注解
@XmlAccessorType(XmlAccessType.FIELD)
@XmlTransient
必须组合使用,注解的具体含义请自行百度,使用示例如下:

@XmlType(namespace="http://service.iop.lg.com")
@XmlAccessorType(XmlAccessType.FIELD) 
public class ApproveFeedBackInput {
    @XmlTransient
    protected RequestBody requestBody;
    protected RequestHeader requestHeader;
    public RequestBody getRequestBody() {
        return requestBody;
    }
    public void setRequestBody(RequestBody requestBody) {
        this.requestBody = requestBody;
    }
    public RequestHeader getRequestHeader() {
        return requestHeader;
    }
    public void setRequestHeader(RequestHeader requestHeader) {
        this.requestHeader = requestHeader;
    }
}
标签:
admin

给我留言

Copyright © 大师级 保留所有权利.   Theme  大师级 桂ICP备14003638号

用户登录

分享到: