选择显示字体大小

教您在j2me中访问dotnet web services

目前,有两种方式访问web服务:1、通过jsr172 api。 

2、通过ksoap api。 

由于使用ksoap方式访问web服务的例子很多,尤其是访问使用java开发的web服务,但是使用ksoap方式访问用.net 开发的web服务,目前的例子很少,而且我花了几天时间没有调通一个,原因未明,故只讨论使用jsr172的方式。ksoap的方式这里暂不讨论。 

注:要获知ksoap的详细资料请上:http://ksoap.objectweb.org/ 
要获知jsr172的资料请上:http://java.sun.com/products/wsa/ 

本示例开发环境:j2me wireless toolkit 2.2,jb9,do.net2003 

需要的jar包:kxml-min.zip ,ksoap-midp.zip 

步骤1:使用.net 开发的web 服务为:(确保调试通过) 


[webmethod(description="login"] 
  //[system.web.services. 
  protocols.soaprpcmethod] 
  public bool login(string  
  sloginuserid,string sloginpwd) 
  { 
   string spwd=""; 
   guserid = ""; 
   if((sloginuserid == null) 
    (sloginuserid.trim() == "")) 
   { 
    return false; 
   } 
   try 
   { 
    myconnection = new sqlconnection(constr); 
    string strsql = "select  
 * from tuser where userid=@userid"; 

    sqlcommand mycommand =  
 new sqlcommand(strsql, myconnection); 
    sqlparameter paramuserid = 
 new sqlparameter("@userid", sqldbtype.nvarchar, 12); 
    paramuserid.value = sloginuserid; 
    mycommand.parameters.add(paramuserid); 

    myconnection.open(); 
    datareader = mycommand.executereader 
 (commandbehavior.closeconnection); 
    while(datareader!=null && datareader.read()) 
    { 
     spwd = datareader.getstring(2); 
    } 
    if( !spwd.equals(sloginpwd)) 
    { 
     return false; 
    } 
    else 
    { 
          return true; 
    } 
   } 
   catch (exception ex) 
   { 
       error.log(ex.message.tostring()); 
    return false; 
   } 
   finally 
   { 
    if(myconnection!=null) 
     myconnection.close(); 
    if(datareader!=null) 
     datareader.close();   
   } 
  } 




步骤2:在j2me中引入web服务。  

在开始菜单中找到j2me wireless toolkit2.2中的utilities一项,点击stub generator按钮,在弹出的界面上输入wsdl,例如:http://192.168.10.101/service/myservices.asmx?wsdl,注意一定要加wsdl.在outpath中填入你想将生成的访问web服务的代码存放的目录;output package中填入你的工程src的目录,例如helloworld.ws是指src目录下的子目录helloworld下的目录ws--如果编译不通过,可以手工改。设定cldc的版本1.0/1.1,建议用1.1的,支持浮点运算。  

点击ok按钮,就可以产生访问web服务的代码了。将代码copy或者本身就产生在自己的工程目录中,刷新jb9的开发环境,新产生的代码即可出现。保证编译通过。  

步骤3:使用web服务。  

修改你的midlet:  

例如:  


/** service connector jax-rpc  
 stub for connecting to server. */ 
  private salesservicesoap_stub service; 
  //这里写你自己的服务, 
  产生的java文件中有一个xxsoap_stub.java文件, 
  其中xx就是你的web服务名。 
  ...... 
  /** initialize midlet data, service, parsers */ 
  public void startapp() 
  { 
    service = new salesservicesoap_stub(); 
//new一个实例 
 service._setproperty 
 (salesservicesoap_stub.session_maintain_property, 
new boolean(true)); 
  ...... 




注意下面这段代码就使用web服务的login方法了。  


public void commandaction(command c, item item) 
{ 
    if (c == cmd_login) 
 { 
      sloginuserid = txtuserid.getstring(); 
      sloginpwd = txtuserpwd.getstring(); 
      if (sloginuserid.length() == 0) 
   { 
        error("input userid please!"); 
        return; 
      } 
      if (sloginpwd.length() == 0) 
   { 
        error("input password please!"); 
        return; 
      } 
      //call .net xml webservices 
      thread t = new thread()  
   {  
   //一定要新开线程,避免锁定屏幕 
        public void run() 
  { 
          try 
    { 
            boolean loginresult =  
   service.login(sloginuserid, sloginpwd); 
   //method:login() 
            if (loginresult == false) 
   { 
              error("you have no permission login."); 
            } 
            else 
   { 
              display.setcurrent(mainform); 
            } 
          } 
          catch (exception e) 
    { 
            if (!exit_string.equals(e.getmessage())) 
   { 
              e.printstacktrace(); 
              error("connection problems.\n" 
                    + "check your inte.net/proxy settings."); 
            } 
          } 
        } 
      }; 
      t.start(); 
    } 




到此,你就已经完成了j2me call the do.net web services!让您有非同一般的感觉吧! 


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons