现在java中开发webService的东东好像有2个:XFrie和AXIS,当然,还有SUN自己的JWSDP,可能还有很多,但是我就知道一个myeclipse5.5.1自己带的XFrie1.2,当然了,实际的应用中也没用过,写出来就算是个参考吧。
XFire是一个免费的开源SOAP框架,它可以帮你快速开发基于Java的WebService应用。把你从繁琐的WebService配置中解放出来,你不再需要了解WebService是如何具体运作的,你仅仅需要关注的是如何更好地实现你的业务逻辑。
那现在就开始我们的Xfire应用之旅吧,首先从xfire.codehaus.org网址下载Xfire,这里我们选择1.2.6版本。JDK我们选择1.5版本,如果没有你可以到SUN公司的官方网站(java.sum.com)上下载,Web服务器这里我们选择Tomcat,你可以到tomcat.apache.org网站上下载最新的版本。
一 安装Tomcat
所有配置选择默认,安装完成后Tomcat的根目录一般为:C:/Program Files/Apache Software Foundation/Tomcat 6.0,使用资源浏览器,导航到Tomcat的服务目录,C:/Program Files/Apache Software Foundation/Tomcat 6.0/wabapps 在下面建一个你自己应用目录,目录名自取。我这里命名为bos。
二 创建业务功能
为简单起见,这里我们使用常规的HelloWorld。首先定义一个interface,此interface用于对外提供服务,可以说是对外的一个界面吧!然后再为该interface实做一个实现class.具体代码如下:
//interface
package com.hk.bos.xfire;
public interface IHelloWorld {
public String showMessage(String message);
}
//implement class
package com.hk.bos.xfire;
public class HelloWorld implement IHelloWorld {
public String showMessage(String message){
System.out.println("the client message : "+message);
}
}
好了业务功能创建完成,现在我们就开始Xfire的配置吧!
三 Xfire的配置
回到我们第一步创建的应用目录,本例为:C:/Program Files/Apache Software Foundation/Tomcat 6.0/wabapp/bos.
在此目录下建两个文件夹:classes 和 lib,建完后再建一个名为web.xml的文件。此文件的内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- START SNIPPET: webxml -->
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<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>
</web-app>
看出什么来了吗? 对,这就是Servlet的标准配置。它的意思就是将所有的前缀为:http://yourserver:port/bos/servlet/XFireServlet/ 和 http://yourserver:port/bos/services的请求交由XFireServlet处理,而这个Servlet就是Xfire已经为我们开发好的,我们不必要做任何修改。
将你应用所要用的lib包(包括Xfire的所要用到的所有支持包)全部Copy到刚才所建的lib目录下。
再进到刚才所建的classes 目录下,在此目录下建以下层级目录META-INF/xfire目录,再在此目录中建一个名为services.xml文件。文件内容如下:
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>HelloWorld</name>
<namespace>http://www.boshk.com/HelloWorld</namespace>
<serviceClass>
com.hk.bos.xfire.HelloWorld </serviceClass>
<implementationClass>
com.hk.bos.xfire.HelloWorld
</implementationClass>
</service>
</beans>
这是XfireServlet所要使用到的配置信息,表明信息不用我说你也应该知道了,其中name表示单个Service的名称,外部将使用此名称调用。namespace名字空间。serviceClass服务类,这是我们前面建的对外服务interface。implementationClass服务实现class。当然如果你需要多个Service,仅仅只要在这里加多一个service节点罢了。够简单的吧 : )
下面我们就来测试一下吧! 启动Tomcat服务。打开浏览器输入http://yourserver:port/bos/services/HelloWorld 。如果没有出错,这时网页中会显示一个完整的XML文件,该XML包括供Client端调用的所有信息。