最近小组在研究一些新技术,包括了Rest,把学习的一些心得写下来,本文关注的是如何用axis2发布简单的Rest。
1. 从[url]http://ws.apache.org/axis2/download/1_4_1/download.cgi[/url]下载最新的axis2版本
2. 从[url]http://tomcat.apache.org/download-60.cgi[/url]下载tomcat服务器
3. 配置好tomcat服务器,确保tomcat没问题
4. 解压缩axis2-1.4.1-war.zip,拷贝axis2.war到tomcat下webapps目录,启动tomcat,输入url [url]http://localhost/axis2/[/url],可以查看web service服务的状态,通过[url]http://localhost/axis2/axis2-admin[/url],可以登陆axis2后台管理界面,可以停止,启动,上传服务等,默认用户为admin,密码为axis2。
5. 在Eclipse下新建工程Research,结构如图:
[img]/upload/attachment/101984/b58f8ec4-3b20-3451-93c5-7e69e33f1ec9.jpg[/img]
AxisRest.java
package research.rest;import java.util.ArrayList;import java.util.List;/** * *//** * @author 玥儿 * */public class AxisRest { public String WelComeRest() { return new StringBuffer("Welcome to rest word! ").toString(); } public List<String> getCityList() { List<String> citys = new ArrayList<String>(); citys.add(new StringBuffer("Shanghai").toString()); citys.add(new StringBuffer("Beijing").toString()); citys.add(new StringBuffer("Xi'an").toString()); citys.add(new StringBuffer("Chongqing").toString()); citys.add(new StringBuffer("Tianjin").toString()); return citys; }}
建立文件META-INF/services.xml,类容如下:
<service> <parameter name="ServiceClass" locked="false"> research.rest.AxisRest </parameter> <operation name="WelComeRest"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation> <operation name="getCityList"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> </operation></service>
建立build.xml,采用ant进行构建
<project name="Rest" basedir="." default="deploy"> <description>Rest use axis2</description> <property name="src.dir" value="${basedir}/src" /> <property name="build.dir" value="${basedir}/bin" /> <property name="war.dir" value="D:\programing\tomcat\webapps\axis2.war" /> <property name="deploy.dir" value="${war.dir}\WEB-INF\services" /> <property name="deploy.temp" value="${basedir}/deploy" /> <target name="init"> <echo>Initializing the environment!</echo> <delete dir="${deploy.temp}" /> <delete dir="${build.dir}" /> <mkdir dir="${deploy.temp}" /> <mkdir dir="${build.dir}" /> </target> <target name="jar" depends="init"> <echo>Compressing files to .aar file!</echo> <javac srcdir="${src.dir}" destdir="${build.dir}"> </javac> <jar basedir="${basedir}/bin" destfile="${deploy.temp}/rest.aar"> <fileset dir="${basedir}" id="META-INF"> <include name="META-INF/services.xml" /> </fileset> </jar> </target> <target name="deploy" depends="jar"> <echo>Deploying service!</echo> <copy todir="${deploy.dir}"> <fileset dir="${deploy.temp}"> <include name="rest.aar" /> </fileset> </copy> </target></project>
为了方便,不想通过axis2后台上传服务,所以先解压axis2.war文件,然后把axis2文件名重命名为axis2.war.
[img]/upload/attachment/101988/c2ec48d4-7856-3302-b221-a9cb73a9d047.jpg[/img]
通过Eclipse发布工程后,就可以通过rest来访问服务了吧,访问[url]http://localhost/axis2/services/rest/WelComeRest[/url],效果如图:
[img]/upload/attachment/101994/9c996040-7861-32b7-a7d1-91a48e144ff8.jpg[/img]
访问[url]http://localhost/axis2/services/rest/getCityList[/url],效果如图:
[img]/upload/attachment/101992/91021f17-2727-33a2-b507-6fa6d91b55b7.jpg[/img]
简单吧,[b][color=red]未完待续......[/color][/b]
相关资源:敏捷开发V1.0.pptx