?????????Flex????????????????????????Ч????????????????????????儀?????????????????????????????????????????й????????????????????Flex??????????????????????????????????顣?????????????Flex??ó??????????????????????????????????齨??Э??????????Adobe????????????????????????????????????????????????????е????????????e??????????Flex??????????????????AMFЭ?飬???AMFЭ?黹????HTTPЭ???????????Ч??????????????????????HTTPЭ???????????й????????м???????AMFЭ?飬???LoadRunner??????AMFЭ?飬??AMF?????????Flash Player?????????????????????????????????????????÷???????й?????????????????????????????????????????????У?????????????????η?????????????????????AMFЭ?????????????????????????????????????C/S??ó???????????????????????????????????LoadRunner??????????????????????????????????£??????????Э?????????????????????????????????Э?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????AMFЭ?飬????????Client??Server???AMFЭ??????????????????????????????

????AMF??Adobe?????????????Э?飬???????????????????л????????л????????????????Flash ????????Flash Remoting?????????????????????????Ч??????????

???????AMF??????Server?????????Adobe??????????Server???????????BlazeDS??Flex?????????AMFЭ?????????????????д????Server???BlazeDS???????BlazeDS????????????Java????????????Flex???????Server????????????????????????????????????????????AMF??BlazeDS???????????????????????????????Java?????AMF???????AMFConnection????Blazeds????????Demo???????£?

package org.test.service.TestLogin;

import flex.messaging.io.amf.client.AMFConnection;
import flex.messaging.io.amf.client.exceptions.ClientStatusException;
import flex.messaging.io.amf.client.exceptions.ServerStatusException;

public class AMFDemo {

    public static void main(String[] args) {
        // ????AMF????
        AMFConnection amfCon = new AMFConnection();
      
        //???? remote URL
        String url = http://localhost:8080/TestLogin/messagebroker/amf ;
         try{
            amfCon.connect(url);
        }catch(ClientStatusException cse){
            System.out.println(cse);
            return ;
        }
      
        TestLogin result ;  
        try{
            result = (TestLogin)amfCon.call("TestLogin.login"??"username"??"passwd");//?????????????????????????
        }catch(ClientStatusException ce){
            System.out.println(ce);
        }catch(ServerStatusException se){
            System.out.println(se);
        }
        amfCon.close();      
        System.out.println("Sucessfull!!!");
    }
}
 $new_page$

??????????????????????????????????????y????????????????????Java??????????????????????????????????????????????????BlaseDS??????????????????????????£?

package org.test.service.TestLogin;

import flex.messaging.io.amf.client.AMFConnection;
import flex.messaging.io.amf.client.exceptions.ClientStatusException;
import flex.messaging.io.amf.client.exceptions.ServerStatusException;

public class AMFDemo implements Runnable{

        public void run(){
        // ????AMF????
        AMFConnection amfCon = new AMFConnection();
       
        //???? remote URL
        String url = http://localhost:8080/TestLogin/messagebroker/amf ;
        try{
            amfCon.connect(url);
        }catch(ClientStatusException cse){
            System.out.println(cse);
            return ;
        }
        //???100??
        for(int i=0; i<100; i++){
            TestLogin result ;   
            try{
                Thread.sleep(1000L);
                long TestStart = System.currentTimeMillis();
                result = (TestLogin)amfCon.call("TestLogin.login"??"username"??"passwd");//?????????????????????????
                System.out.println("login:" + (System.currentTimeMillis() - TestStart));//????????????????
            }catch(ClientStatusException ce){
                System.out.println(ce);
            }catch(ServerStatusException se){
                System.out.println(se);
            }catch (final InterruptedException e) {
                e.printStackTrace();
            }
        }
        amfCon.close();       
        System.out.println("Sucessfull!!!");
    }
}   
   
public class AMFDemoTest {
    //????100?????
    public static void main(String[] args) throws Exception {
        for (int i = 0; i < 100; i++) {
            Runnable runnable = new AMFDemo();
            new Thread(runnable).start();
        }
    }

}
 
???????Java???AMF??????BlazeDS??????????????????AMFЭ???Flex??ó???????????????????????????????????????FLex?????????????????????????????????????????????????????????ù??????????????????????????????????????????LoadRunner??????JMeter??????Java???????????????JMeter????Java??????????ù???????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????Java??Flex????????????????翪?????????????????????BlazeDS???????????????????????????????????????????????????????????????????????????????????????ζ??????????????????????????????????????????????????????????????????????