wslogin.java
来自「J2ME+WebService,采用KSoap框架进行操作。」· Java 代码 · 共 123 行
JAVA
123 行
/**
//文档生成日期:2005.8.14
//
//(1)概述:
//类名称:wsLogin
//类说明:
// Web Service和MIDlet都要定义这个类,他们之间就是传递这个类实体的序列化数据。
*
//所在子系统:Web Service kSOAP Caller
//
//系统总描述:
http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/27/ksoapmidpwebservice1.html
讲的是
第一小步,Web Service传递String
http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/27/ksoapmidpwebservice2.html
则给出了
第二小步,Web Service传递较为复杂的类
下面我们讲述如何在MIDP设备和Web Service之间传递较为复杂的类,比如这个类中不但有String类型成员变量,还有Vector之类的复杂类型。
从kSoap的FAQ上看,他们推荐使用KvmSerializable以及 ClassMap传递自定义类,但是我一直没有试验成功。
我还是按照能试验出来的办法讲述一下步骤吧:
大致思路就是,在服务器端将类实例按照一定规格(一个一个的成员变量写)序列化为byte[],将这个byte[]数组返回给kSOAP。kSOAP收到之后,再反序列化,将byte[]一段一段地读入类实例。
//(2)历史记录:
//创建人: 郑昀(2005.8.14)
//联系我: Google Talk >> zhengyun@gmail.com
//Blogs: http://blog.csdn.net/zhengyun_ustc/以及http://www.cnblogs.com/zhengyun_ustc
//(3)版权声明:
//遵照GPL协议的大意开放源代码,您可以自由传播和修改,在遵照GPL协议的约束条件的前提下。
////////////////////////////////////////////////////////////////////*/
package com.ultrapower.model;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import com.ultrapower.tools.StringVector;
public class wsLogin extends wsContainer{
public wsLogin()
{
super("");
}
private String wsMailFile;
public String getMailFile()
{
return wsMailFile;
}
private String wsMailCount;
public String getMailCount()
{
return wsMailCount;
}
public String getReturnCode()
{
return wsReturnCode;
}
private String mailServer;
public String getMailServer()
{
return mailServer;
}
public StringVector wsvAllMailSubject;
public StringVector getAllMailSubject()
{
return wsvAllMailSubject;
}
/*public byte[] serialize()
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try
{
dos.writeUTF(wsReturnCode);
dos.writeUTF("");
dos.writeUTF(wsMailCount);
wsvAllMailSubject.writeObject(dos);
baos.close();
dos.close();
}
catch(Exception exc)
{
exc.printStackTrace();
}
finally
{
}
return baos.toByteArray();
}*/
public static wsLogin deserialize(byte[] data) {
ByteArrayInputStream bais = new ByteArrayInputStream(data);
DataInputStream dis = new DataInputStream(bais);
wsLogin login = new wsLogin();
try
{
login.wsReturnCode = dis.readUTF();
login.wsMailFile = dis.readUTF();
login.mailServer=dis.readUTF();
login.wsMailCount = dis.readUTF();
login.wsvAllMailSubject.readObject(dis);
bais.close();
dis.close();
}
catch(Exception exc)
{
exc.printStackTrace();
login=null;
}
finally
{
}
return login;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?