创建WebService服务器以及客户端调用

使用MyEclipse创建WebService简单服务端和客户端

1.创建WebService服务端

1.1新建一个 Web Service Project

File—New— Web Service Project
导入jar包:
http://download.csdn.net/download/u010800201/9927201
1.2创建一个普通的方法

package test;  

public class FirstService {  
    public String getModifyRecords{  
        return "Hello World!";  
    }  
}  

1.3创建相应的WebService接口
项目名—New— other—Web Service
创建WebService服务器以及客户端调用_第1张图片
选择你想选择创建接口的java Bean 如:FirstService ,然后点击finish。
然后会在web.xml中生成url端口名称。
这里写图片描述
将服务端应用部署,进行测试
http://localhost:8080/service(应用名)/RetDataPort(端口名)?wsdl
如果见到如下页面,即服务端搭建成功:
创建WebService服务器以及客户端调用_第2张图片

2.创建WebService客户端
以下两种客户端获取数据方式是在工作中遇到过的,在此记录下

2.1新建一个web project
2.2新建一个Web Service Client
项目名—项目名—New— other—Web Service Client–Next
创建WebService服务器以及客户端调用_第3张图片
在这里的WSDL URL中写入刚才搭建服务器之后的接口地址,此时你的webservice服务器必须要处于部署状态,这样点击finish后客户端才能从接口地址获取数据,生成完之后,会创建几个java类文件
创建WebService服务器以及客户端调用_第4张图片
然后新建一个类,写一个调用接口的主函数

package service;

public class test {
    public static void main(String args[]){
        RetDataService service = new RetDataService();
        RetDataDelegate port = service.getRetDataPort();
        System.out.println(port.getModifyRecords());
    }
}

运行主函数,就可以在后台看到啦。

2.3 Axis客户端
这是另外一种方式,但是需要有相应的jar包

package axis;  

import org.apache.axis.client.Call;  
import org.apache.axis.client.Service;  
import org.apache.axis.encoding.XMLType;  
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

public class AxisTest {  

    public static void main(String[] args) {  

        try { 
            String endpoint = "http://localhost:8080/service/RetDataPort?wsdl" ;  

            Service service = new Service() ;  

            Call call = (Call) service.createCall() ;  

            call.setTargetEndpointAddress(endpoint) ;  

            call.setOperationName(new QName("http://service/",methodName));

            call.addParameter("arg0", XMLType.XSD_STRING,ParameterMode.IN);//接口的参数
            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); //设置返回类型
        call.setUseSOAPAction(true);
        call.setTimeout(new Integer(60000));
        String result = (String) call.invoke(new Object[]{});    
            System.out.println(result);  

        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

运行主函数就可以了。

我这里涉及到的WebService工作一般都是做数据同步,所以有时还要搭配Quartz定时器进行调用,记录一下

你可能感兴趣的:(Web服务器)