图片不知道怎么搞,会把我写的doc发上去供下载.
XFire Web Service的开发
本人想着做一个webservice,从网上一查有N个可以用做开发的开源东东,一时也不知从哪儿下手,就一点点想吧,一直知道用MyEclipse可以比较轻松的开发,想想那个东东占内存太大,还是在Eclipse上开发一个试试吧。起先使用的是eclipse-helios-3.6.2想着应该安装一堆插件就能做Web Service了吧,但是事实是试了两个晚上没有成功,决定放弃它(如果有成功的请指点一下)。由是呼又上了Eclipse的官网把
Eclipse Java EE IDE for Web Developers下载下来一看,想要的东东都有。真是忙死不懂的不尝命!
环境:
Eclipse Java EE IDE for Web Developers
Version: Helios Service Release 2
xfire-1.2.6
1、 Eclipse环境的配置
从” http://www.apache.org/dyn/closer.cgi?path=/cxf/2.4.0/apache-cxf-2.4.0.zip” 网站上下载apache-cxf-2.4.0或者其它的版本
设置这个东东的目的是为了在Create Web Service时有一个Web Service runtime环境设置,本版的Eclipse中没有CXF的运行环境包,另外还两个aisx和aisx2,aisx2也没有运行环境包,所以要选择的话也要从网上下载环境包
注:Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,简称为 CXF。
2、 创建一个Dynamic Web Project,在选择Configuration时选择CXF Web Service Project,我试过Default….Tomcat v6.0,可惜没有调成功,所以后来选择了CXF。具体原因还是等待高手能给个答案.
3、 将Class的Default output folder设置成WebContent/WEB-INF/classes
4、 建立接口cn.com.test.service.HelloWorld.java
public interface HelloWorld {
String sayHelloWorld(String name);
}
5、 接口实现类cn.com.test.service.HelloWorldImpl.java
public class HelloWorldImpl implements HelloWorld {
public String sayHelloWorld(String name) {
String helloWorld = "hello," + name;
return helloWorld;
}
}
6、在src下手动创建/META-INF/xfire/services.xml,输入以下内容
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorld</name>
<serviceClass>cn.com.bmsoft.webservice.HelloWorld</serviceClass> <implementationClass>cn.com.bmsoft.webservice.HelloWorldImpl</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
然后刷新工程,这时会在WebContent/WEB-INF/目录下生成/META-INF/xfire/services.xml
7、 将XFire运行环境的lib目录下的jar引入工程,为了不让CXF的jar包与XFire的包冲突,将CXF环境引用的jar包删除。(我在做的时候先是没有删除CXF的jar结果Spring的jar发生了冲突,最后想想了主要还是做的XFire所以将CXF的jar全部删除,再起Server没有报错)
8、 修改web.xml
<display-name>cxftest</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
9、 建立Server
10、在IE中输入http://localhost/cxftest/services/HelloWorld如果显示“Invalid SOAP request.”则说明成功。