如今技术更新的太快了,你稍不留神就会错过很多东西,今天花了些时间研究了下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
孙钰佳
*
@main
sunyujia@yahoo.cn
*
@date
Jul
13,
2008
12:25:41
PM
*/
public
interface
MyServer {
public
String getTestStr();
}
package
com.syj.ws;
/**
*
<p>
*
Title:
服务的实现
*
</p>
*
*
<p>
*
Copyright:
转载请注明出处
http://blog.csdn.net/sunyujia/
*
</p>
*
*
@author
孙钰佳
*
@main
sunyujia@yahoo.cn
*
@date
Jul
13,
2008
12:26:19
PM
*/
public
class
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);
}
控制台打印
this is demo
test client completed
说明执行成功!
最后推荐大家一些资料