一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。
所谓远程调用,就是一台计算机a上 的一个程序可以调用到另外一台计算机b上的一个对象的方法
发布方式:4种
CXF方式
Xfire方式
AXIS2方式
AXIS1方式
服务端 cxf方式
所需jar包
接口
接口必须要用@WebService注解
@WebService
public interface HelloWorld {
String sayHi(String name);
}
实现类
@WebService(endpointInterface="com.ywx.HelloWorld",serviceName="HelloWorldWs")//指定webservice所实现的接口以及服务名称
public class HellowWorlds implements HelloWorld{
@Override
public String sayHi(String name) {
return name+"您好!现在时间是:"+new Date();
}
}
发布(暴露接口)
public class ServiceMain {
public static void main(String args[]){
HelloWorld hw = new HellowWorlds();
//调用Endpoint的publish方法发布Web Service
Endpoint.publish("http://192.168.106.181:9080/vashon", hw);
System.out.println("Web Service暴露成功!");
}
}
注:对于本机地址 http://192.168.106.181:9080/vashon?wsdl 和 http://localhost:9080/vashon?wsdl 不一样,后者在别的电脑上不能访问
接口/实现类/发布也可以写在一个类中 如下所示
@WebService
public class Function {
public String transWords(String words){
String res = "";
for(char ch : words.toCharArray()){
res += ch+",";
}
return res;
}
public static void main(String[] args) {
// 使用Endpoint(终端)类发布webservice
System.out.println("Publish Success");
}
}
客户端(新建java项目或动态项目后按步骤自动生成)
右键->new->other->Web Service Client
客户端生成后 需要新建一个测试的类:如
public class TestService {
public static void main(String[] args) {
// TODO Auto-generated method stub
HelloWorldProxy h = new HelloWorldProxy();
try {
String s = h.sayHi("郑亮");
System.out.println("调webservice:"+s);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
完整实例
webservice加入到tomcat监听,实现服务调用
本文摘自 :https://www.cnblogs.com/