Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
Web Service的关键技术和规则:
1.XML:描述数据的标准方法.
2.SOAP:表示信息交换的协议(简单对象访问协议).
3.WSDL:Web服务描述语言.
4.UDDI:通用描述、发现与集成,他是一种独立于平台,基于XML语言的用于在互联 上描述商务的协议。
调用原理:
Web服务有两层含义:1、是指封装成单个实体并发布到 络上的功能集合体;2、是指功能集合体被调用后所提供的服务。简单地讲,Web服务是一个URL资源,客户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。
使用xfire开发Web Services:
使用xfire框架,我这里使用的是MyEclipse集成的xfire进行测试,利用xfire开发WebService可以有三种方法:
a.一种是从JavaBean中生成。
b.一种是从wsdl文件中生成。
c.一种是自己建立webservice。
具体实现步骤如下:
1.用Myeclipse建立webService工程(注意:Web Service&J2EE Details中的Framework选XFire),目录结构如下:
- package com.yjpeng.hello;
- public interface IHello {
- public String sayHello(String message);
- }
3.创建IHelloImpl.java实现IHello.java接口
[c-sharp] view plaincopy
- package com.yjpeng.hello;
- public class IHelloImpl implements IHello {
- public String sayHello(String message) {
- return message;
- }
- }
4.修改Service.xml文件,加入以下代码
com.yjpeng.hello.IHello
com.yjpeng.hello.IHelloImpl
5.把该Web Service项目部署到tomcat里面启动tomcat在浏览器地址栏输入http://localhost:8080/TestWebServices/services/Hellosdl 出现如下图
7.创建一个客户端HelloClient.java类
[c-sharp] view plaincopy
- import java.net.MalformedURLException;
- import java.net.URL;
- import org.codehaus.xfire.XFireFactory;
- import org.codehaus.xfire.client.Client;
- import org.codehaus.xfire.client.XFireProxyFactory;
- import org.codehaus.xfire.service.Service;
- import org.codehaus.xfire.service.binding.ObjectServiceFactory;
- import com.yjpeng.hello.IHello;
- public class HelloClient {
- public static void main(String[] args) {
- Service s = new ObjectServiceFactory().create(IHello.class);
- XFireProxyFactory xf = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
- String url=“http://192.168.122.128:8080/TestWebServices/services/HelloService”;
- IHello hello;
- try {
- hello = (IHello)xf.create(s, url);
- System.out.println(hello.sayHello(“你好”));
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
- try {
- //这个是在java端调用.net写的远程Web Service 如果调用本机写的只需要把URL中的地址换成本机能访问的地址即可
- Client c = new Client(new URL(“http://www.webxml.com.cn/webservices/qqOnlineWebService.asmxsdl”));
- Object[] o = c.invoke(“qqCheckOnline”, new String[]{“271751507”});
- System.out.println(o.length);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
运行HelloClient.java类可以输出 你好
首先,客户端和web service端都要有同一个接口以便信息的获取,第二要在web service上配置services.xml,里面有此service的相关信息。客户端从web service上获取信息的原理是双方约定好下载信息使用的接口(当然包括获取信息的类型)。利用回调,客户端从服务器上获取到相关的信息。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!