flex与java通信

flex可以通过BlazeDS(还真不知道怎么读这厮)与java通信,网上看到了不少例子,今天测了一下,算是成功的写了个demo。
flex和web写成一个工程,我没有测试,有时间测测。也可以分开建立工程,现在就是分开写的。
1、---》用myEclipse建立web工程;
2、---》下载BlazeDS这玩意,大概4M左右;解压得到blazeds.war,在把blazeds.war解压了(网上说发布到tomcat下,运行tomcat云云,整了个圈就是为了解压,你直接搞个winrar解压不就得了,让我们这些小菜看着费劲),替换自己工程下的META-INF和WEB-INF(最好是打开自己工程文件夹替换,然后再在Eclipse中刷新一下)。
3、---》在web工程中写java类
package com.flex.test;    
      
public class HelloWorld {    
      
public HelloWorld() {    
}    
      
public String getHelloWorld(String name) {    
  return name+"and ynp say:Hello World!";    
} 
}   

4、---》在remoting-config.xml中配置这个类
    <destination id="helloWorld">    
	     <properties>    
	         <source>com.flex.test.HelloWorld</source>    
	     </properties>    
	</destination> 


5、---》建立flex工程调用,两种方式(其实都一样,先记下来当模板好了);
方式一 在as中建RemoteObject 对象
<?xml version="1.0" encoding="utf-8"?>    
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">    
     <mx:Script>    
     <![CDATA[    
        import mx.rpc.events.FaultEvent;    
        import mx.collections.ArrayCollection;    
        import mx.rpc.remoting.mxml.RemoteObject;    
        import mx.controls.Alert;    
        import mx.rpc.events.ResultEvent;    
           
        public function submit():void{    
            var remote:RemoteObject = new RemoteObject(); 
            remote.endpoint = "http://127.0.0.1:8080/flex_server/messagebroker/amf"   
            //调用在J2EE端remoting-config.xml中配置的暴露出的类的名称 id    
            remote.destination = "helloWorld";    
            //调用J2EE端类中的方法    
            remote.getHelloWorld(userName.text);    
            //监听调用成功事件    
            remote.addEventListener(ResultEvent.RESULT,result);                    
            //监听失败事件    
            remote.addEventListener(FaultEvent.FAULT,fault);      
        }    
           
        private function result(evt:ResultEvent):void{    
            Alert.show(evt.result.toString());    
        }    
           
         private function fault(evt:FaultEvent):void{    
            Alert.show("调用失败!");    
        }           
     ]]>    
     </mx:Script>    
   
     <mx:Button click="submit()" label="hello" horizontalCenter="0" verticalCenter="0"/>    
     <mx:TextInput x="171" y="117" id="userName"/>
   
</mx:Application>   


方式二 在mxml中建RemoteObject对象
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import mx.rpc.events.ResultEvent; 
			import mx.rpc.events.FaultEvent;
			import mx.controls.Alert; 
			private function submit():void{
				remote.getHelloWorld(userName.text); 
			}
			private function result(evt:ResultEvent):void{    
	            Alert.show(evt.result.toString());    
	        }    
	           
	         private function fault(evt:FaultEvent):void{    
	            Alert.show("调用失败!");    
	        } 
		]]>
	</mx:Script>
	<mx:RemoteObject id="remote" destination="helloWorld" endpoint="http://127.0.0.1:8080/flex_server/messagebroker/amf"
		 result="result(event)" fault="fault(event)"/>
	<mx:Button click="submit()" label="hello" horizontalCenter="0" verticalCenter="0"/>    
    <mx:TextInput x="171" y="117" id="userName"/>
</mx:Application>


你可能感兴趣的:(java,tomcat,xml,MyEclipse,Flex)