XFire:开发Web服务的简易之道(二)--Web应用的部署描述

XFire:开发Web服务的简易之道(二)--Web应用的部署描述
摘要:XFire本身就是基于Servlet的应用,因此我们需要向文件中添加一些必要的参照.那么我们就需要配置我们创建的Web服务.我们使用名叫services.xml的文件来完成配置。

Web应用的部署描述
在Java中,Web应用至少使用一个名叫web.xml的部署描述来部署. XFire本身就是基于Severlet的应用,因此我们需要向文件中添加一些必要的参照.那么我们就需要配置我们创建的Web服务.我们使用名叫services.xml的文件来完成配置.

web.xml
首先想让我们看一下web.xml.我们需要加上如下语句:
    <servlet>
        <servlet-name>XFireServlet</servlet-name>
        <display-name>XFire Servlet</display-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>

services.xml
下面我们就要描述一下我们的Web服务都包含什么.这个工作在services.xml中完成.这个文件位于META-INF/xfire目录下,下面是基本的配置条目:

<beans xmlns="http://xfire.codehaus.org/config/1.0">
  
  <service>
    <name>Banking</name>
    <namespace>mybank</namespace>
    <serviceClass>com.mybank.xfire.example.IBankingService</serviceClass>
    <implementationClass>com.mybank.xfire.example.BankingService</implementationClass>
  </service>  
  
</beans>

让我们看看文件中的具体内容. 对Web服务的定义包含在 <service>元素内.<service>元素下还有若干子元素.
第一个子元素是<name>, 你可以提供任何有效的xml名字,这个名字会被客户端程序和服务器上的其他组件使用.例如,当服务器起来以后,你可以在浏览器上使用这个名称来查看WSDL.
下一个子元素是<namespace>. 任何有效地xml名称都可以, <namespace>将作为你服务器的唯一标识变量使用.
<serviceClass>元素包含Java类名用来指明方法的签名.在我们的这个例子中是IBankingService接口.如果你的Java类没有实现任何接口,那就填入类名.在你的Java类或接口中也许含有不知一个方法,只需要一个入口来将他们转换成Web服务.
<implementationClass>元素记录实现接口的Java类名.这是一个可选元素.如果前一个元素<serviceClass>填入的是接口,那么此处就要填入相应的实现类名.
至此,我们的Web服务配置工作就完成了.

XFire和其他库
现在,我们做最后一步工作--获得所有必要的库文件.我们怎么获得他们呢? 访问XFire官方网站http://xfire.codehaus.org/ 下载xfire-distribution-1.0.zip并解压到本地文件夹中.将下列文件拷贝到WEB-INF\lib:
  • activation-1.0.2.jar
  • commons-codec-1.3.jar
  • commons-httpclient-3.0.jar
  • commons-logging-1.0.4.jar
  • jaxen-1.1-beta-8.jar
  • jdom-1.0.jar
  • log4j-1.2.x.jar
  • mail-1.3.3_01.jar
  • spring-1.2.x.jar
  • stax-api-1.0.jar
  • wsdl4j-1.5.2.jar
  • wstx-asl-2.9.jar
  • xbean-2.1.0.jar
  • xbean-spring-2.2.jar
  • xfire-all-1.0.jar
  • XmlSchema-1.0.jar

    大功告成!让我们部署并启动应用.要部署这个例子,只需要将websvc.war复制到Apache Tomcat 环境的webapps目录下,等待几分钟,应用会自动启动. 例子的所有源代码也包含在这个war文件中(文件太大,我将其分卷压缩)part1  part2  part3  part4  part5.现在,我们的应用已经是一个Web服务了. 

    我们怎么知道Web服务有效?
    我们来做一些测试,看看Web服务是否有效.
    首先,我们先来看看WSDL是否有效。在浏览器中输入URL。哪个URL?因为我们的war文件名叫websvc.war,services.xml 中给出的servicenames是Banking, 那么WSDL URL为http://localhost:8080/websvc/services/Banking?wsdl
    请注意:URL的前一部分,例如:http://localhost:8080会根据你安装的应用服务不同而不同。如果你输入了URL,你将会看到以<wsdl:definitions>为根结点的xml文件。这个文件叫做web服务的WSDL.如果你看到了这个文件,那么初步验证你的Web服务有效。
    但是这个验证还不够。有时候情况会复杂一些,你可以看到WSDL,但是客户端却无法访问Web服务。因此要真正检验Web服务是否真的好使,就要用客户端程序对Web服务作一次真正的调用。
    后面我将介绍如何开发客户端-->XFire:开发Web服务的简易之道(三)--开发客户端程序

  • 你可能感兴趣的:(XFire:开发Web服务的简易之道(二)--Web应用的部署描述)