今天写完后台,就想研究下使用tomcat+xfire发布webService,让前台使用flex写的页面来访问。

虽然xfire已经是一个将要过时的技术。

其实,网上已经有很多类似的帖子,但是找来找去,还是花了很多功夫进行调试,我是一个初学者,写通了一个demo,就希望分享,那怕是大家来拍砖,让我成长(笑)。

1、使用myeclipse新建一个工程(网上说直接使用myeclipse将工程变成webService支持,我不想这样做,老老实实导入jar包)

2、下载xfire

网址:

或者,这里是其它版本(我真是好人):

注意,要下载zip,如果只下载jar包,还要辛辛苦苦找依赖包。

3、导入jar包

注意这两个servlet,可能引起冲突。

4、后台代码开写呗

需要一个接口

package cn.cty;public interface ISayHello {    public String sayHelloFunction();}

需要一个实现类

package cn.cty;public class SayHello implements ISayHello {    @Override    public String sayHelloFunction() {                                                                                                                                                                                                                                                                           System.out.println("sayHelloFunction run!");        return "douglas is here!";    }}

需要一个xfire的配置文件services.xml,这个文件的路径在web.xml中配置(如果不知道怎样写,可以在下载的xfire中的examples文件夹中找到例子)

SayHello
http://cn.cty/SayHello
cn.cty.ISayHello
cn.cty.SayHello

需要在web.xml中配置servlet

xFireServlet
org.codehaus.xfire.transport.http.XFireConfigurableServlet
config
xfire/services.xml
xFireServlet
/services/*
index.jsp

**这里要特别注意:

之前在网上看的,说将xfire的配置文件放在工程的META-INFO/xfire下!但是不同eclipse可能生成的META-INFO目录不同,导致我一直报错,找不到配置文件services.xml,所以在web.xml中指定路径。

整个工程看起来就是这样的

5、测试

发布到tomcat就不说了吧,然后访问

如果成功,那么就得到wsdl了。

(这里一般会发生找不到类或者jar包冲突问题,如果改错,最好到tomcat中将工程删了,重新发布,这只是经验之谈)

6、前台代码开写呗

使用s:webservice来访问

creationComplete在所有组件加载完后访问了service服务

s:webservice中的result在请求成功后调用geeting方法,改变了绑定数据returnMessage的值

基本上,这是一个简单的demo,就这样吧!