使用XFire开发及调用WebService的步骤:
一、服务提供者的开发工作:
1、准备工作:
到XFire网站(http://xfire.codehaus.org/Download)下载最新的
XFire发布版本,比如现在最新的版本是:xfire-distribution-1.2.6.zip。
将该压缩包解压,并将其lib目录下的所有jar包以及xfire-all-1.2.6.jar
导入到工程中。
2、开发服务接口及实现类:
开发一个接口类,声明业务方法;
开发一个实现类,完成业务方法的具体实现;
3、在服务器中配置XFire支持:
XFire本身是基于Servlet的程序,为了确保客户端能够访问到Web服务,需要
在应用中对其进行配置。在web.xml中进行如下配置:
<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>/services/*</url-pattern>
</servlet-mapping>
4、声明及发布服务:
在src目录下创建META-INF文件夹,并在该文件夹下创建xfire文件夹,
在其下创建services.xml文件,在该文件中声明提供的服务,每一个服务
对应文件中的一个<service>元素:
<service>
<name>服务名</name>
<namespace>www.jbaptech.com.cn/AddBook</namespace>//这里指定服务的名称空间
<serviceClass>服务接口类的完整路径</serviceClass>
<implementationClass>服务实现类的完整路径</implementationClass>
</service>
5、测试服务是否发布成功:
将应用部署到服务器上,启动服务器,打开浏览器,输入以下地址:
http://服务器地址:端口号/Web应用名/services/服务名?wsdl
如果在浏览器中可以看到该服务发布后的WSDL文档(XML文档),就表示webservice服务成功。
二、客户端调用WebService步骤:
1、创建服务模型(使用服务接口:定义了服务的规范);
Service service = new ObjectServiceFactory().create(服务接口名.class);
2、创建XFire的支持对象:
XFire xfire = XFireFactory.newInstance().getXFire();
3、通过xfire的支持对象,创建生产服务代理对象的工厂
(可以根据服务模型和服务地址生产各种类型的服务代理对象):
XFireProxyFactory factory = new XFireProxyFactory(xfire);
4、获得服务的地址(可以在服务发布的WSDL文档中找到):
String serviceUrl = "http://服务器地址:端口号/Web应用名/services/服务名";
5、通过该工厂获得一个服务代理对象:
服务接口 client = (服务接口) factory.create(service,serviceUrl);
6、通过服务代理对象调用服务方法