J2ME与Web Service-KSOAP快速上手
作者: 文章来源:
发布日期:2007年04月10日 浏览次数:94次
http://www.jspcn.net/htmlnews/B20070807102235.html
摘要
本文用一个简明的例子,阐述了如何在手机上用KSOAP API来访问本地服务器上的Web Service。并且给出了详细的操作步骤和全部的Server,Client源代码。
1. 服务端
这次要发布的web service非常简单。它的功能是把从客户端传入的字符串中的小写字母转变成大写字母,再返回给客户端。Soap 服务器采用apache的AXIS(可以从http://ws.apache.org/axis/下载),应用服务器可以选用各种servlet 容器,我这里采用的是weblogic。
1.1 实现类的源代码
// StringProcessor.java package com.jagie.j2me.ws;
public class StringProcessor { public StringProcessor() { }
public String process(String name){ return name.toUpperCase(); } }
1.2 发布步骤
1.准备一个目录作为web application的发布目录,我这里的这个目录叫jagiews,这个目录的全路径中最好不要有空格和中文。我的发布目录结构如下:
2.编译StringProcessor.java,把生成的StringProcessor.class置于: jagiewsWEB-INFclassescomjagiej2mews目录下。
3.在jagiewsWEB-INFlib 文件夹中置入以下axis服务器需要的jar文件 axis.jar,axis-ant.jar,commons-discovery.jar,commons-logging.jar,jaxrpc.jar,log4j-1.2.8.jar,saaj.jar ,wsdl4j.jar。这些文件可以在http://ws.apache.org/axis/下载,如图所示:
4.在jagiewsWEB-INF目录下增加2个发布描述文件:server-config.wsdd,web.xml。
#server-config.wsdd
value=\ type=\ type=\ type=\ type=\ type=\ # web.xml PUBLIC \ \ org.apache.axis.transport.http.AxisServlet org.apache.axis.transport.http.AdminServlet org.apache.axis.monitor.SOAPMonitorService 5.开启你的application server,把目录jagiews发布为一个名叫jagiews的web application。 6.测试:打开浏览器,输入网址(这里使用的是weblogic,其他的服务器请酌情修改): http://localhost:7001/jagiews/services/StringProcess?method=process&name=qqqq,如果浏览器能在返回的xml文档中显示字符串\,恭喜你,你的web service发布成功了。如果发布不成功,请按以上发布步骤检查一下。 2. 客户端 客户端自然是用MIDlet了,不过用什么方式来访问web service呢?其实有3种访问方式 直接用HttpConnection访问 http://localhost:7001/jagiews/services/StringProcess?method=process&name=qqqq,得到xml的返回数据,然后用kxml(http://kxml.enhydra.org/)解析,得到返回值。 如果你的手机支持MIDP2.0的话,可以考虑使用JSR172。 用ksoap api。 这里讲述第三种方式。使用之前,你需要从 http://ksoap.enhydra.org/software/downloads/index.html下载稳定的ksoap包,置于你的classpath中。 2.1 客户端源代码