Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。Internet Inter-Orb Protocol(IIOP)都已经发布了很长时间了,但是这些模型都依赖于特殊对象模型协议,而 Web Services 利用 SOAP 和 XML对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。Web Services 主要利用 HTTP 和 SOAP 协议使商业数据在 Web 上传输,SOAP通过 HTTP 调用商业对象执行远程功能调用,Web 用户能够使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象.
Axis是一套实现了Web services的标准,参考http://ws.apache.org/axis/。 下载地址:http://ws.apache.org/axis/java/releases.html
1、服务器端步骤
将axis-bin-1_4.zip文件解压,将解压后的webapps下面的axis考贝到tomcat中的TOMCAT-HOME/webapps下
在TOMCAT-HOME/webapps/axis下创建MyMath.jws文件,内容如下:
public class MyMath {
public int squared(int x) {
int result = x * x;
System.out.println("the squared of " + x + " is " + result);
return result;
}
}
启动Tomcat,访问如下http://localhost:8080/axis/MyMath.jws,如果可以正常访问Web Service部署成功!!
2、客户端调用
在Eclipse中建立java项目,引入Axis中的所有的包。建立MyMathClient.java文件,编写调用web service的客户端代码:
public class MyMathClient {
private static final String endPoint = "http://localhost:8080/axis/MyMath.jws?wsdl";
public static void main(String args[]){
Service service = new Service();
try {
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL(endPoint));
Integer result =(Integer)call.invoke("squared", new Object[]{10});
System.out.println(result);
} catch (ServiceException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}catch(RemoteException e){
e.printStackTrace();
}
}
}