XFire开发步骤

1. 配置Web服务项目:增加Lib包。

2.配置文件清单:主要配置文件(web.xml)WebRoot\WEB-INF\web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <servlet>
    <servlet-name>XFireServlet</servlet-name>
    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>XFireServlet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

3.开发一个web服务:

实现代码如下:


4. services.xml

路径:WebRoot\WEB-INF\classes\META-INF\xfire\services.xml

<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>GMSService</name>
<serviceClass>com.IGMSService</serviceClass>
<implementationClass>com.GMSServiceImpl</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service></beans>

5.发布Web服务

启tomcat

6.Web服务客户端编写:

有三种方式:动态方式(反射)、代理方式、客户端桩方式。

(1)客户端采用动态方式要加入Xfire相关jar包就能调用服务的方法,类似java反射

URL url = new URL(urldz);
URL url = new URL("http://10.11.1.202:9000/GMSService/GMSService?wsdl");
       //返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。 
       URLConnection uc = url.openConnection();      
       //打开的连接读取的输入流。 
       InputStream in = uc.getInputStream();   
       Client client = new Client(in, null);      
       Object[] objArray = new Object[2];
       objArray[0] = dxnr;
       objArray[1] = jsrysjhm;
       //调用特定的Web Service方法sendMessage,参数为objArray   
       Object[] results = client.invoke("sendMessage", objArray);

//返回值放在results 数组中。
       result =(String)results[0];

(2)代理方式(SDK方式):需要加入Xfire相关jar包,并且客户端必须提供与服务端一样的接口,即我们的服务暴露给客户端的接口,包名也最好与服务端的一样。

Service srvcModel = new ObjectServiceFactory().create(IGMSService.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String URL = "http://10.11.1.202:9000/GMSService/GMSService";
IGMSService webservice = (IGMSService)factory.create(srvcModel, URL);
java.util.Vector allmsg = webservice.receiveMessage();

(3)客户端桩方式(根据WSDL生成):也是最容易理解的一种方式,它通过工具自动生成客户端代码,在调用服务时就好像在本地方法一样,同样需要加入Xfire相关jar包的支持。myeclipse就可以生成。

你可能感兴趣的:(XFire开发步骤)