`
zhzhiqun2005
  • 浏览: 219747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web service 之 xfile

阅读更多
Webservice ----xfile
wood fish  2009-3-12  22.13

前天晚上写过一篇关于axis的简单操作过程的文章, 由于是初次学习webservice,感觉axis如此简单的就可以做webservice的接口,方法的发布,并且可以在客户端中进行访问. 但是对于其中的自动生成代码, 以及一些接口的开发,以及webserivce,wsdl wldd的发布还是有一些不解. 带着这些问题,今天在公司问了一问一个同事. 就把这些问题抛过去给他, 然而他并没有给我很明确的一些回答,倒是有一个比较有用, 他说做webservice有两种方法,有一种是用axis,还是一个是用xfile.相比之下, xfile 是后起之秀, 比较简单,发布,以及管理开发等等的优点, 还说一般做webservice就用myeclipse中的webservice工程,就可以达到目的,而且相当简单. 以是我就做了如下的一个例子的尝试.

一、 环境:
Myeclipse 5.5  xp  xfile1.2, tomcat6.18
二、 新建工程
1. 在myeclipse菜单中新建一webservice工程 : File ->new ->pfoject



2. 选择web service project ,或者点击“Myeclipsejava enterprise project”选择webservice project。然后点击“next”后:如下图:
 


3. 2中的图中输入project  name,名为“mywebservice”,然后点击next,然后如下图所示:



4.   如上图所示,保侍默认就可以, 然后点击“next”。然后会如下图所示:



5.   在上图页面中,是一个选择jar包的页面,如果还要在这个工程中做客户端的测试,则还要把”http client libraryse” 选择上.然后点击下一步,这里我们就不选择客户端,等一下在别的工程中进行展示。经过next,finish以后,最后生成的一个工程如下图所示.



6.   Src下面添加两个包, 一个是com.woodfish.dao,一个是com.woodfise.impl
分别在这两个包下面添加一个HelloService的接口,以及一个实现HelloService接口的类HelloServiceImpl。内容分别为.
HelloService.java
package com.woodfish.dao;

import java.util.Map;

public interface HelloService {
  public String sayHello(String name);
  public Map getMap(String value1,String Value2);
}

HelloServiceImpl.java
package com.woodfish.impl;

import java.util.HashMap;
import java.util.Map;

import com.woodfish.dao.HelloService;

public class HelloServiceImpl implements HelloService {

public Map getMap(String value1, String value2) {
Map<String, String> m = new HashMap<String, String>();
m.put("value1", value1);
m.put("value2", value2);
return m;
}

public String sayHello(String name) {
return "hello" + name;
}

}

7.   配制webservice.xml
点击myeclipse中的“filenewother”然后,选择myeclipseweb service,如下图所示。




8.   如上图所示, 点击“next”,



9. 如上图所示, 不用配制其他,点击“next”。将会出现如下图。





10. 上图中, 填写,web service name, 以及刚才定义的接口名字,以及实现类的名字.其它不动。如下图所示.



11.   如上图,中点击”finish”,然后webserviceservice.xml文件中,已以配制好了, 接口和实现类。



12. 接着,就可以进行布署到tomcat应用中, 然后用:
http://localhost:2009/eweb/services/mywebservice?wsdl进行访问.



13. 以上的过程就是把服务器端做好了.接下来就要做客户端了.
三、   客户端的配制以及调用.
客户端的配制以及调用有两种方法, 一种是自动生成一些代码接口,然后直接调用, 一种是手写一些方法来进行调用.下面分别来写这两种方法.
1. 手写代码
手写代码之前,一定要把http client library 的包加进来,以及一些相应的xfile的核心包. 包有以下几个:
XFire 1.2 Core libraries
XFire1.2 HTTP Client libraries
XFire1.2 JaxB2 libraries.
加入了以上的三个包以后, 然后可以写一个测试的main方法来进行测试调用服务方法.
TestHelloClient.java
public class TestHelloClient {

public static void main(String[] args) {
Service srvcModel = new 
    ObjectServiceFactory().create(HelloService.class);  
    XFireProxyFactory factory =  
       new XFireProxyFactory(XFireFactory.newInstance().getXFire());  
    String helloWorldURL =  
       "http://localhost:2009/mywebservice/services/mywebservice";  
    try{  
    HelloService srvc = (HelloService)factory.create(srvcModel, helloWorldURL);  
       String result = srvc.sayHello("aa");
       Map m=srvc.getMap("va1","va2");
       System.out.println(m.get("value1"));
       System.out.print(result);  
    } catch (MalformedURLException e){  
       e.printStackTrace();  
    } 
}
}

2.   还有一种,是通过配制生成一些客户端类的接口.
同样是myeclipse ”filenewothermyecliseweb serviceweb service  Client”




3. 如上图所示, 做”next”操作. 如果服务端没有启服务,那么会有下面的一个小错误提示,所以最好还是要启动服务以后,再进行”next”.

4.  



5.



6. 以上就是自动生成出来了一些有用的接口, 一个方法一个接口, 就可以拿来用了.
7.   在调用中可以参照hellowordserviceClient类中的main方法,如下面所示.
   hellowordserviceClient client = new hellowordserviceClient();
//create a default service endpoint
hellowordservicePortType service = client.
gethellowordserviceHttpPort();
System.out.println(service.sayHello("aaaaaaaaaaaaaaaaadddddda"));

四、   综合上面的三点,是不是很简单.

  • 大小: 39 KB
  • 大小: 43.3 KB
  • 大小: 41.7 KB
  • 大小: 66.7 KB
  • 大小: 60.1 KB
  • 大小: 44 KB
  • 大小: 55.6 KB
  • 大小: 124.2 KB
  • 大小: 138 KB
  • 大小: 47.9 KB
  • 大小: 46.4 KB
  • 大小: 44.9 KB
  • 大小: 94.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics