J2ME与Web Service-KSOAP的快速上手[3]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

  <servlet-mapping>
    <servlet-name>SOAPMonitorService</servlet-name>
    <url-pattern>/SOAPMonitor</url-pattern>
  </servlet-mapping>

 <!-- uncomment this if you want the admin servlet -->
 <!--
  <servlet-mapping>
    <servlet-name>AdminServlet</servlet-name>
    <url-pattern>/servlet/AdminServlet
 </url-pattern>
  </servlet-mapping>
 -->

    <!-- currently the W3C havent settled
 on a media type for WSDL;
    http://www.w3.org/TR/2003/
 WD-wsdl12-20030303/#ietf-draft
    for now we go with the basic
 'it's XML' response -->
  <mime-mapping>
    <extension>wsdl</extension>
     <mime-type>text/xml</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>xsd</extension>
    <mime-type>text/xml</mime-type>
  </mime-mapping>
</web-app>
 

 

5.开启你的application server,把目录jagiews发布为一个名叫jagiews的web application。

6.测试:打开浏览器,输入网址(这里使用的是weblogic,其他的服务器请酌情修改): http://localhost:7001/jagiews/services/StringProcess?method=process&name=qqqq,如果浏览器能在返回的xml文档中显示字符串"QQQQ",恭喜你,你的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 客户端源代码

2.1.1 WSClientMIDlet.java


package com.jagie.j2me.ws;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c)
 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class WSClientMIDlet
    extends MIDlet
 {
  static WSClientMIDlet instance;

  public WSClientMIDlet()
  {
    instance = this;
  }

  public void startApp()
  {
    Display display=
 Display.getDisplay(this);
    DisplayForm displayable =
 new DisplayForm();
    display.setCurrent(displayable);

  }

  public void pauseApp()
  {
  }

  public void destroyApp
  (boolean unconditional)
  {
  }

  public static void quitApp()
  {
    instance.destroyApp(true);
    instance.notifyDestroyed();
    instance = null;
  }

}
 

 

2.1.2 DisplayForm.java


package com.jagie.j2me.ws;
import javax.microedition.lcdui.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c)
 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class DisplayForm
    extends Form
    implements CommandListener,
 Runnable
 {
  private TextField textField1;
  private Thread t;

  public DisplayForm()
  {
    super("字符转换webservice测试");

    try
 {
      jbInit();
    }
    catch (Exception e)
 {
      e.printStackTrace();
    }


  }

本文关键:J2ME与Web Service-KSOAP的快速上手
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top