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

时间:2022-04-23 13:42:38

使用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服务器以及客户端调用
选择你想选择创建接口的java Bean 如:FirstService ,然后点击finish。
然后会在web.xml中生成url端口名称。
创建WebService服务器以及客户端调用
将服务端应用部署,进行测试
http://localhost:8080/service(应用名)/RetDataPort(端口名)?wsdl
如果见到如下页面,即服务端搭建成功:
创建WebService服务器以及客户端调用

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

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

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定时器进行调用,记录一下