见名之意,@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的地址:
如图,两个方法的参数都从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("发布成功");
}
}
发布之后,查看wsdl文档中的schemLocation的地址:
如图,方法参数以及方法返回值跟注解保持一致
参考文章
https://blog.csdn.net/cherry_11qianqian/article/details/82662315