现在的位置: 首页 > 综合 > 正文

使用Myeclipse开发基于xfire的Web Services 入门

2012年01月03日 ⁄ 综合 ⁄ 共 2720字 ⁄ 字号 评论关闭
 

如今技术更新的太快了,你稍不留神就会错过很多东西,今天花了些时间研究了下xfire,但是当我写完demo的时候,百度相关信息时发现xfire已经停止更新了,CXF做为xfire的下一代产品将完全替代xfire,看来我是落伍了,既然demo已经写完了,还是共享出来吧,虽然CXF已经开始运作,但是短时间内xfire还是会占据一定市场的。
至于我为什么没有选择axis,主要还是因为axis上手太麻烦了,同时听说也比较慢,于是就选择了xfire。
做为一个初次开发web services程序的我,试图编写最简练的示例代码来入门,刚刚就写了一个超级简单的示例,但是广例子简单是不行的,好用的工具总是比手工coding好的多。
谈谈开发工具,起初我想使用wtp,因为我正在试图放弃myeclipse,我依稀的记得wtp的新建工程里面有web services选项,于是经过一番尝试发现wtp是基于axis的,比较郁闷。只有又捡起myeclipse。
有心的同学可能会发现,在myeclipse的新建工程向导对话框中,有一个web services project 选项,下面逐步说明:
1.New->project->MyEclipse->Java Enterprise Projects->web service project->给工程起个名字,我起名为WebServicesDemo,在Web Service& J2EE Details中选择XFire(deprecated)注意这里其实已经说明了(已废弃)我刚刚在写demo的时候没有看到,晕。
2.点击下一步,填写用于提供服务的Servlet信息,因为我也是初次尝试所以都保留了默认值,下一步选择依赖的jar包,建议从官方网站上下载,不使用myeclipse提供的。
官方网站地址http://xfire.codehaus.org/
下载xfire-distribution-1.2.6.zip和 xfire-all-1.2.6.jar
依赖包介绍http://xfire.codehaus.org/Dependency+Guide 这里有介绍那些包必须引那些包可以不引。引过包后点finish。
3.编写测试代码:
package com.syj.ws;
 
/**
 *<p>Title:服务的接口</p>
 *
 *<p>
 *Copyright:转载请注明出处http://blog.csdn.net/sunyujia/
 *</p>
 *
 *@author孙钰佳
 *@mainsunyujia@yahoo.cn
 *@dateJul13,200812:25:41PM
 */
publicinterface MyServer {
    public String getTestStr();
}
package com.syj.ws;
 
/**
 *<p>
 *Title:服务的实现
 *</p>
 *
 *<p>
 *Copyright:转载请注明出处http://blog.csdn.net/sunyujia/
 *</p>
 *
 *@author孙钰佳
 *@mainsunyujia@yahoo.cn
 *@dateJul13,200812:26:19PM
 */
publicclass MyServerImpl implements MyServer {
 
    public String getTestStr() {
       return"this is demo";
    }
 
}
4.配置services.xml,在没尝试web services之前就发现了这个按钮,但在昨天我还不知道它的真正用途。
这里点击第一个,可在services.xml中生成相关配置,稍后会使用第二个生成客户端程序。
生成services.xml的内容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
    <service>
       <name>Demo</name>
       <serviceClass>com.syj.ws.MyServer</serviceClass>
       <implementationClass>
           com.syj.ws.MyServerImpl
       </implementationClass>
       <style>wrapped</style>
       <use>literal</use>
       <scope>application</scope>
    </service>
</beans>
       5.将应用发布到tomcat上面使用myeclipse发布即可。
注意:正常情况下services.xml应该被拷贝到WEB-INF/classes/META-INF/xfire目录下
         使用浏览器访问
如果看到wsdl文件即表明成功。

编写客户端程序

先利用myeclipse生成客户端的代码,上面有提到,和生成services配置差不多。
生成客户端的过程要保证tomcat是开启状态
测试生成的客户端代码
publicstaticvoid main(String[] args) {

        DemoClient client = new DemoClient();

        DemoPortType service = client.getDemoHttpPort();

        System.out.println(service.getTestStr());

        System.out.println("test client completed");

        System.exit(0);

    }

       运行DemoClient 后稍等片刻(web services确实很慢)

控制台打印
this is demo
test client completed
说明执行成功!
 
最后推荐大家一些资料

抱歉!评论已关闭.