@WebService
@WebMethod
@WebResult
@WebParam
@WebService对类进行注解
1. serviceName:对外发布的服务名,指定WebService服务的名称:wsdl:service。默认值为Java类的简单名称+Service。
2. endpointInterface:服务接口全路径,指定SEI(Service EndPoint Interface)服务端点接口。
3. name:要包含XML Web Service的名称。在默认情况下,该值为XML Web Service的类名,wsdl:portType的名称。
4. portName:wsdl:portName。默认值为WebService.name + port。
5. targetNamespace:指定命名空间。
6. wsdlLocation:Web Service的WSDL文档的地址。可以网络地址,可以本地地址。
@WebMethod作用于@WebService的类及接口方法上
1. soperationName:指定wsdl:operation的名称。
2. exclude:排除某个方法。默认值为false。
@WebResult表示方法的参数
@WebParam表示方法的返回值
这里举一个例子:
项目结构如下:
对应的代码如下:
XxxService.java
package webService;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import java.util.List;
@WebService
public interface XxxService {
List<Object[]> getXXXData(@WebParam(name = "AAA") Integer AAA,
@WebParam(name = "BBB") Integer BBB,
@WebParam(name = "CCC") Integer CCC,
@WebParam(name = "DDD") Integer DDD,
@WebParam(name = "EEE") Integer EEE);
}
XxxServiceImpl.java
package webService;
import com.aaa.bbb.ccc.ddd;
import com.zzz.xxx.yyy.uuu.iii;
import javax.jws.WebService;
import java.util.List;
@WebService(endpointInterface = "webService.XxxService")
public class XxxServiceImpl implements XxxService{
public List<Object[]> getXXXData(Integer AAA, Integer BBB, Integer CCC, Integer DDD, Integer EEE) {
....
return objects;
}
}
Main.java
import webService.******;
import javax.xml.ws.Endpoint;
public class Main {
public static void main(String[] args){
Endpoint.publish("http://8.8.8.8:9999/XXXDB", new NewGenServiceImpl());
System.out.println("发布成功");
}
}
这里再补充下webService的作用:
1. 异构系统之间的通信问题。
2. 一些公共资源的调用。