WebService入门

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),目录结构如下:

WebService入门
  1. package com.yjpeng.hello;  
  2.   
  3. public interface IHello {  
  4.     public String sayHello(String message);  
  5. }  

3.创建IHelloImpl.java实现IHello.java接口

[c-sharp] view plaincopy

  1. package com.yjpeng.hello;  
  2.   
  3. public class IHelloImpl implements IHello {  
  4.   
  5.     public String sayHello(String message) {  
  6.         return message;  
  7.     }  
  8. }  

4.修改Service.xml文件,加入以下代码

 
 
  HelloService
  
  
  com.yjpeng.hello.IHello
  

  
  
  com.yjpeng.hello.IHelloImpl
  

  
  

  literal
  application
 

5.把该Web Service项目部署到tomcat里面启动tomcat在浏览器地址栏输入http://localhost:8080/TestWebServices/services/Hellosdl 出现如下图

WebService入门

7.创建一个客户端HelloClient.java类

[c-sharp] view plaincopy

  1. import java.net.MalformedURLException;  
  2. import java.net.URL;  
  3.   
  4. import org.codehaus.xfire.XFireFactory;  
  5. import org.codehaus.xfire.client.Client;  
  6. import org.codehaus.xfire.client.XFireProxyFactory;  
  7. import org.codehaus.xfire.service.Service;  
  8. import org.codehaus.xfire.service.binding.ObjectServiceFactory;  
  9.   
  10. import com.yjpeng.hello.IHello;  
  11.   
  12. public class HelloClient {  
  13.     public static void main(String[] args) {  
  14.         Service s = new ObjectServiceFactory().create(IHello.class);  
  15.         XFireProxyFactory xf = new XFireProxyFactory(XFireFactory.newInstance().getXFire());  
  16.         String url=“http://192.168.122.128:8080/TestWebServices/services/HelloService”;  
  17.         IHello hello;  
  18.         try {  
  19.             hello = (IHello)xf.create(s, url);  
  20.             System.out.println(hello.sayHello(“你好”));  
  21.         } catch (MalformedURLException e) {  
  22.             e.printStackTrace();  
  23.         }  
  24.         try {  
  25.             //这个是在java端调用.net写的远程Web Service 如果调用本机写的只需要把URL中的地址换成本机能访问的地址即可  
  26.             Client c = new Client(new URL(“http://www.webxml.com.cn/webservices/qqOnlineWebService.asmxsdl”));  
  27.             Object[] o = c.invoke(“qqCheckOnline”new String[]{“271751507”});  
  28.             System.out.println(o.length);  
  29.         } catch (Exception e) {  
  30.             e.printStackTrace();  
  31.         }  
  32.     }  
  33. }  

运行HelloClient.java类可以输出 你好           

    首先,客户端和web service端都要有同一个接口以便信息的获取,第二要在web service上配置services.xml,里面有此service的相关信息。客户端从web  service上获取信息的原理是双方约定好下载信息使用的接口(当然包括获取信息的类型)。利用回调,客户端从服务器上获取到相关的信息。

来源:-梅子酒-

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年9月8日
下一篇 2016年9月8日

相关推荐