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

[img]/upload/attachment/140502/adf4c4d5-1ba9-304f-9b22-2c3ea05257a0.bmp[/img]

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

[img]/upload/attachment/140504/b1791215-5c80-31d4-8234-adf809a98fdf.bmp[/img]

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

[img]/upload/attachment/140510/c307239a-f4a0-36a3-b86f-f4d251dd596b.bmp[/img]

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

[img]/upload/attachment/140507/f90ec9f0-103f-3baa-a47c-19f789eb9364.bmp[/img]

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

[img]/upload/attachment/140506/93bd2588-20ee-3011-bdc8-a548d4467027.bmp[/img]

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,如下图所示。

[img]/upload/attachment/140513/c5037462-0898-3ce7-a46b-d95c78a8c965.bmp[/img]


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

[img]/upload/attachment/140515/0477dc41-23ce-3752-97ea-9be062673636.bmp[/img]

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


[img]/upload/attachment/140517/e8ed08af-7700-3fa8-b4c8-ef6ac987cdaf.bmp[/img]


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

[img]/upload/attachment/140520/a90d5677-e66d-3165-802b-3550adffea48.bmp[/img]

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

[img]/upload/attachment/140522/8be9b5ee-ae90-3b44-9968-5a35d7ea361c.bmp[/img]

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

[img]/upload/attachment/140523/afa312b3-0e48-3136-bc9a-c97facf4f4e9.bmp[/img]

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”

[img]/upload/attachment/140525/74738a68-2002-3913-b835-adbd72a0f062.bmp[/img]


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

4.
[img]/upload/attachment/140525/74738a68-2002-3913-b835-adbd72a0f062.bmp[/img]


5.
[img]/upload/attachment/140528/150a1d32-5a3f-3762-979c-d2ec05f94770.bmp[/img]


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

四、 综合上面的三点,是不是很简单.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录....................................................................................................................................................2 说明....................................................................................................................................................3 一、使用到的开发工具:.........................................................................................................3 二、服务端开发步骤.................................................................................................................3 1、使用xfire 创建Web 服务。..............................................................................................3 2、创建服务接口和实现.........................................................................................................7 3、xfire 服务配置....................................................................................................................9 4、服务发布...........................................................................................................................10 5、为服务配置安全认证.......................................................................................................11 三、客户端开发.......................................................................................................................12 1、新建Web 工程................................................................................................................. 12 2、导入xfire 包.....................................................................................................................13 3、创建类定义.......................................................................................................................15 四、扩展1-使用xfire 插件创建客户端代码........................................................................ 18 1、插件安装.............................................................................................................................18 2、使用已安装的插件进行客户端代码生成........................................................................ 20 4、编写调用代码,调用服务.............................................................................................. 24 五、扩展2-使用axis(这时是1-4 版本)创建客户端代码.................................................... 28 1、使用WSDL2Java 工具根据WSDL 生成客户端代码.................................................. 28 2、新建工程项目...................................................................................................................30 3、编写调用代码...................................................................................................................31

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值