⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ecmclient.java

📁 IBM AGLET及JAVA实现的电子商务系统源码
💻 JAVA
字号:


package ecmAglet;

import com.ibm.aglet.*;
import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
/**
 *
 * @version     1.00    $Date: 3/26/98 4:17p $
 * @author      Mitsuru Oshima
 * @see examples.talk.TalkSlave
 */
public class ecmClient extends Aglet {

    AgletProxy[] remoteProxy=new AgletProxy[50] ;///remoteProxy代理slave
	 int i=0;///i used for the order of remoteProxy
    String name = "Unknown";
	 int num=0;         ////////记录派遣aglet的个数
    log log;
    //TalkWindow window = null;

    public void onCreation(Object o) {
		//window = new TalkWindow(this);
		//window.pack();
		//window.show();
		log=new log();
		log.Init("Ecmdb");
	 	try {
	   	name = (String) getAgletContext().getProperty("aglets.user.name", "Unknown");
			///debug
			System.out.println("agelets.user.name:"+name);
			setText("agelets.user.name:"+name);
		}
		catch (Exception ex) {
		}
    }

    public void onDisposing() {
		/*
		if (window != null) {
	    window.dispose();
	    window = null;
		}*/
    }
    /////sent to client 
    public void dispatchProxy(String dest) {
		try {
	   	i++;
	   	/*
	   	if (remoteProxy[i] != null) {
				remoteProxy.sendMessage(new Message("bye"));
	 	   }*/

	   	AgletContext context = getAgletContext();

	    	AgletProxy proxy = context.createAglet(null, "ecmAglet.ecmProxy", getProxy());

	    	URL url = new URL(dest);
	    	remoteProxy[i] = proxy.dispatch(url);
	    	
	    	System.out.println("i will dispatch another aglet to server");
	    	

		} catch (InvalidAgletException ex) {
	   	 ex.printStackTrace();
		} catch (Exception ex) {
	   	 ex.printStackTrace();
		}
    }
	////发送消息到客户端
	public void sendMessage(String text) {
		try {
	   	if (remoteProxy[i] != null) {
				//remoteProxy.sendMessage(new Message("text",
					//	    name + " : " + text));
	    	
	    	//Object result=remoteProxy[i].sendAsyncMessage(new Message("sendQuery",text)).getReply();
	    	remoteProxy[i].sendAsyncMessage(new Message("sendQuery",text));
	    	/////////
	    	/*
	    	System.out.println("master receive result from slave["+i+"]");
			
			String[][] records=(String[][])result;
			int l=records.length;
			int ll=records[1].length;
			System.out.println("array lenth is :"+l);
			System.out.println("record lenth is :"+ll);
			
			outLoop:
			for (int i=0;i<l;i++){
				for (int j=0;j<ll;j++){
					if (records[i][j]!=null)
						System.out.print(records[i][j]+",");
					//else if break la;
					else break outLoop ;
				}
				System.out.println(""); ///换行显示
	 		}	
	 		*/
	 		
	 		
	    	}///end if   	
		} ///end try
		catch (Exception ex) {
	   	 ex.printStackTrace();
		}
   }
	//////////
	public void saveResult(String[][] records){
		tableSql tt;
		tt=new tableSql();
	 	tt.tableInit("Ecmdb");
	 	ResultSet rs;
	 	String insert="";
	 	float price;
		int amount;
		double goodstime=0;
		//String goodstime;
		String source="";
		
 		try{
			int l=records.length;
			int ll=records[1].length;
			//System.out.println("array lenth is :"+l);
			//System.out.println("record lenth is :"+ll);
			Loop:
			for (int i=1;i<l;i++){
				System.out.println("*****1");
				insert="";
				/*for (int j=1;j<ll;j++){
					if (records[i][j]!=null){
						insert=insert+"'"+records[i][j]+"',";
						//System.out.print(records[i][j]+",");
					}
					//else if break la;
					else break Loop;
				}*/
				for (int j=1;j<ll-4;j++){      ////ll=7;
					if (records[i][1]!=null){
						insert=insert+"'"+records[i][j]+"',";
						//System.out.print(records[i][j]+",");
					}
					//else if break la;
					else break Loop;
					
				}
				
				price=Float.valueOf(records[i][ll-4]).floatValue() ;
				amount=Integer.parseInt(records[i][ll-3]);
				goodstime=Double.valueOf(records[i][ll-2] ).doubleValue();
				//goodstime=records[i][ll-2];
				source=records[i][ll-1];
				
				insert=insert+price+","+amount+","+goodstime+","+"'"+source+"'";
				//insert=insert+price+","+amount+","+"'"+goodstime+"',"+"'"+source+"'";

				System.out.println("the insert :"+insert);
				tt.recordInsert("insert into gtmp (productor,goodsname,model,price,amount,goodstime,source) values("+insert+")"); 

	 			System.out.println("insert into gtmp (productor,goodsname,model,price,amount,goodstime,source) values("+insert+")"); 
	 			rs=tt.recordSql("select * from gtmp");
				tt.display(tt.recordPrint(rs) );
				//slaveProxy.sendAsyncMessage(new Message("bye","kill finderProxy") );
	 		}
	 		//tt.closeResult();
	 		tt.closeConnect();
	 		//System.out.println("*************4");
	 	}
	 	catch(NumberFormatException ex){
				ex.printStackTrace();
		}
	 	catch (Exception e){
			e.printStackTrace();
			log.Add("error","ecmclient:client save result failed");
		}  
	 	///////////
	 		
	}
	
   public boolean handleMessage(Message msg) {
		if (msg.sameKind("dispatch")) {     /////接受master传来的消息,并送给server  	
	    	
	    	String[] str=(String[])msg.getArg();
	    	num=str.length;
	    	AgletContext context = getAgletContext();
	    	Loop:
	    	for (int i=0;i<num;i++){
	    		try{
	    			if (str[i]!=null){
	  		  			remoteProxy[i] = context.createAglet(null, "ecmAglet.ecmProxy", getProxy());
	  		  			URL url = new URL("atp://"+str[i]);
	    				remoteProxy[i] =remoteProxy[i].dispatch(url);
	    				System.out.println("now dispatch "+i+" url is :atp://"+str[i]);
	    				log.Add("event","ecmclient:dispatch "+i+" url is :atp://"+str[i]);
	    				//remoteProxy[i].sendAsyncMessage(new Message("sendQuery",query));
	    				//System.out.println("i will dispatch another aglet to server");
	    			}
	    			else break Loop;
				} 
				catch (InvalidAgletException ex) {
	   			 ex.printStackTrace();
	   			 log.Add("error","ecmclient:fail dispatch this aglet");
				} 
				catch (Exception ex) {
	   			 ex.printStackTrace();
				}
			}///end for
	    	//sendMessage(str);
		}
		else if (msg.sameKind("sendQuery")) { 
			String[] str=(String[])msg.getArg();
			System.out.println("*****0");
			String ss="ecmclient send query to server: "+str[0];
			log.Add("event","ecmclient:"+ss);
			System.out.println("ecmclient send query to server: "+str[0]+","+str[1]);
			
			
			for (int i=0;i<num;i++){
	    		try {
	    			if (remoteProxy[i]!=null)
	    				remoteProxy[i].sendAsyncMessage(new Message("sendQuery",str));
	    			//System.out.println("i will dispatch another aglet to server");
				
				} 
				catch (Exception ex) {
	   			 ex.printStackTrace();
	   			 log.Add("error","ecmclient:ecmclient send command failed");
				}
			}
			//System.out.println("-----the dest length is:"+num);
		}
		else if (msg.sameKind("getResult")) {  //////////////
			System.out.println("client receive result from server");
			
			String[][] records=(String[][])msg.getArg();
			int l=records.length;
			int ll=records[1].length;
			//System.out.println("array lenth is :"+l);
			//System.out.println("record lenth is :"+ll);
			
			Loop:
			for (int i=0;i<l;i++){
				for (int j=0;j<ll;j++){
					if (records[i][j]!=null)
						System.out.print(records[i][j]+",");
					//else if break la;
					else break Loop;
				}
				System.out.println(""); ///换行显示
	 		}	
	 		//System.out.println("*****0");
	 		saveResult(records);
		}
		else if (msg.sameKind("text")) {
	     		System.out.println("i receive message: text");
	     		/*
	     		if (window.isVisible() == false) {
					window.show();
	    		}
	    		window.appendText((String)msg.getArg());
	    		*/
	    		return true;
		}
		return false;
   }

    private void print(String m) {
   	System.out.println("Sender: " + m);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -