WEB SERVICE PROJECT实例(XFire、接口开发)

来源:互联网 发布:九次方大数据 上市 编辑:程序博客网 时间:2024/06/05 17:57

       一个Web Service Project的主要任务,就是让几个不同的组件之间能够互相操作,而这一技术的实现,又依赖于HTTP 和 SOAP协议。SOAP,Simple Object Access Protocol,简单对象访问协议。

下面介绍一种比较流行的框架--XFire,在MyEclipse的搭建。

        一、环境配置  MyEclipse8.5 && JDK1.6

       二、new ==>Web Service Project

       1)FrameWork选择XFire

       2)Next,默认;

       3)Library选择,XFire 1.2  Core Libraries;

      4)Finish,文件结构如下:

    5)从web.xml对比普通的web项目,我们可以看到很熟悉的东西,url-pattern,看到这几个配置,心理淡定了不少。

      三、用MyEclipse为Web Service Project生成对外的接口:new ==> other ==>myelcipse ==> Web Services ==> Web service

      1)Strategy是java class

      2)Web Service Name:

      3)finish

      4)修改HelloServiceImpl.java以供测试

      [java] view plain copy

  1. public class HelloServiceImpl implements IHelloService {  
  2.       
  3.     public String example(String message) {  
  4.         return sayHello(message);  
  5.     }  
  6.       
  7.     private String sayHello(String name){  
  8.         return "Hello," +name;  
  9.           
  10.     }  
  11. }  


 四、部署WebService

      1)像部署普通web一样,部署到tomcat上去。

      2)测试WebService,

  

      3)打开Web Service Explorer之后,点击右上角一个WSDL Page的图标,Navigator里面的内容会变成WSDL Main,点击它,在右边的WSDL URL里面敲入:

http://localhost:8080/MyWebService/services/HelloService?WSDL

端口是对应的tomcat的端口,和你的webService的名称。开发过j2EE的朋友应该很容易理解,为什么要这样写地址,看一下生成的services.xml就知道了。

可以看到,现在对外的接口只有example一个。

通过浏览器访问URL,可以看到更加直观的wsdl:

 

      五、写个Client尝试调用一下:

      1)创建一个普通的java Project: new ==> java project

      2)为新的project添加library。点击项目,鼠标右键,选择properties,选择左边的java build path,再点击右边的

add library按钮,选择MyEclipse libraries,找到这两个文件:

      3)新建一个类,调用example:

[java] view plain copy
  1. import java.net.MalformedURLException;  
  2. import java.net.URL;  
  3.   
  4. import org.codehaus.xfire.client.Client;  
  5.   
  6. public class HelloInvoke {  
  7.   
  8.     /** 
  9.      * @param args 
  10.      * @throws Exception  
  11.      * @throws MalformedURLException  
  12.      */  
  13.     public static void main(String[] args) throws Exception {  
  14.         Client client = new Client(  
  15.                 new URL("http://localhost:8080/MyWebService/services/HelloService?WSDL")  
  16.         );  
  17.         //利用java的反射机制可以远程地得到已经在wsdl中声明的对象  
  18.         Object[] results = client.invoke("example"new Object[]{"jacob.Ye"});  
  19.         System.out.println("results[0] " + results[0]);  
  20.     }  
  21.   
  22. }  


运行:

output:

  /*

      Hello,jacob.Ye

  */

一个简单的WebService就算是调用完毕。


0 0
原创粉丝点击