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 + -
显示快捷键?