zl程序教程

您现在的位置是:首页 >  其他

当前栏目

怒得网友100000赞,webservice中常用注解——@WebParam @WebResult详细描述

2023-03-14 22:49:48 时间

@WebParam表示方法的参数,

@WebResult表示方法的返回值,根据下面的案例,我们看一下,加或者不加这两个注解对发布的方法的影响

一:不加这两个注解

@WebService
public class SayWeb {
    
    @WebMethod(operationName="sayHello")
    public  String sayHello(String name,int i){
        i++;
        return "hello"+name;
    }
    
    @WebMethod(operationName="bye")
    public void sayBye(boolean f){
        System.out.println("bye");
    }   
    /**
     * main方法中发布
     * */
    public static void main(String[] args) {
        String address="http://localhost:9001/service/sayweb";
        Endpoint.publish(address, new SayWeb());
        System.out.println("发布成功");     
    }
}

发布之后,查看wsdl文档中的schemLocation的地址:

image

如图,两个方法的参数都从arg0,开始,随着参数增多,name不断增加为arg1,arg2..........;返回值名字为return

二:加上注解

@WebService
public class SayWeb {
    
    @WebMethod(operationName="sayHello")
    @WebResult(name="helloName")
    public  String sayHello(@WebParam(name="oldName")String name,@WebParam(name="age")int i){
        i++;
        return "hello"+name;
    }
    
    @WebMethod(operationName="bye")
    public void sayBye(@WebParam(name="flag")boolean f){
        System.out.println("bye");
    }   
    /**
     * main方法中发布
     * */
    public static void main(String[] args) {
        String address="http://localhost:9001/service/sayweb";
        Endpoint.publish(address, new SayWeb());
        System.out.println("发布成功");     
    }
}

image

如图,方法参数以及方法返回值跟注解保持一致

了解 @WebService @WebMethod 

@Webservice

l  @WebService注解,作用在具体类上。而不是接口。

l  一个类只有添加了此注解才可以通过Endpoint发布为一个web服务。

l  一个添加了此注解的类,必须要至少包含一个实例方法。静态方法和final方法不能被发布为服务方法。

WebService注解包含以下参数:

image.png

@WebMethod

l  此注解用在方法上,用于修改对外暴露的方法。

image.png

@WebResult用于定制返回值到WSDL的映射:

image.png