西安交通大学
移动计算
论文题目 WebService协议设计 学 院 班 级 学 号 学生姓名 完成时间
一、任务简介
使用SOAP等WebService协议,完成一个Web服务的服务器端和客户端的交互。
二、WebService简介
Web service是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。根据W3C的定义, Web service应当是一个软件系统,用以支持网络间不同机器的互动操作。
Web service通常包括:1.SOAP是一个基于XML的可扩展消息信封格式,需同时绑定一个传输用协议。这个协议通常是HTTP或HTTPS,但也可能是SMTP或XMPP。2.WSDL是一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。3.UDDI是一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB服务。
三、服务器配置过程描述
Web服务器是指驻留于因特网上某种类型计算机的程序,当客户端连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该客户端上,附带的信息会告诉客户端如何查看该文件(即文件类型)。
本次WebService服务中,开发环境为Eclipse,其中主要包含以下步骤: 1.新建Web service工程,在src下新建一个service包
2.创建服务类,即一个普通的java类,负责提供我们想要发布的执行方法 3.配置服务端并添加服务,进行接口设置与文件配置 4.配置客户端
四、WebService的各部分代码
3.1接口代码:
package webservice.calculator.service;
public interface Calculator { }
public int add(int a,int b); public int sub(int a,int b); public int mul(int a,int b); public int did(int a,int b);
3.2接口实现代码:
package webservice.calculator.service.impl;
import webservice.calculator.service.Calculator;
public class CalculatorImpl implements Calculator { public int add(int a, int b) {
return a+b;
}
public int sub(int a, int b) {
return a-b;
}
public int mul(int a, int b) {
return a*b;
}
public int did(int a, int b) {
return a/b;
}
}
3.3配置文件代码:
Web.xml
xmlns=\ xmlns:xsi=\ xsi:schemaLocation=\ http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\> org.codehaus.xfire.transport.http.XFireConfigurableServlet
Services.xml
webservice.calculator.service.impl.CalculatorImpl
3.4客户端代码:
package webservice.calculator.client;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import webservice.calculator.service.Calculator;
public class Client { }
public static void main(String args[]) throws MalformedURLException{ }
Service service = new
XFireProxyFactory factory = new
String url =
Calculator A = (Calculator)factory.create(service,url);
int addResult = A.add(8,4); int subResult = A.sub(5,3); int mulResult = A.mul(3,2); int didResult = A.did(10,2);
System.out.println(\加4等于\+addResult); System.out.println(\减3等于\+subResult); System.out.println(\乘2等于\+mulResult); System.out.println(\除5等于\+didResult);
ObjectServiceFactory().create(Calculator.class);
XFireProxyFactory(XFireFactory.newInstance().getXFire());
\;
五、实验结果