Flex4系列二:Flex4和Java通信的简单应用

        搞了好久,感觉是插件安装的问题,因为我的问题比较奇怪,下一篇文章写写问题的解决方案。

        这篇写一个简单的demo。flex4和java通信是必须的。

        一:java类:

             

package test;

//flex4调用的java类
public class SayHello {
	public String sayHelloToYou(String name){
		return "hello,"+name;
	}
}

         二:webRoot目录下导入blazeds的war解压以后的文件,导入后如图。当然可以手动加入,不过最好是能满足这个结构,方便另外一些配置。

        

 


        三:部署到服务器,然后启动服务器,这个很重要,因为在添加flex支持的时候需要检测服务器路径

              然后添加flex的支持,选择BlazeDS

             

 

          点击next,进行BlaszeDS服务器的配置

   
         

 
        四:在Blazeds.war中有四个配置文件,demo中只用2个remoting-config.xml和services-config.xml


         remoting-config.xml

        

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" 
    class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" 
        	class="flex.messaging.services.remoting.adapters.JavaAdapter" 
        	default="true"/>
    </adapters>
     //参照必须
    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    //以下为与java通信    
    <destination id="mytest">
    <properties>
        <source>test.SayHello</source>
    </properties>
 	</destination>

</service>

    services-config.xml

     
   

<?xml version="1.0" encoding="UTF-8"?>
<services-config>

    <services>
        <service-include file-path="remoting-config.xml" />
    </services>


    <channels>

        <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" 
            	class="flex.messaging.endpoints.AMFEndpoint"/>
            <properties>  
				<polling-enabled>false</polling-enabled>  
			</properties>  
        </channel-definition>

    </channels>

    

</services-config>

   

    Flex4Java.mxml

   

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"  minWidth="1024" minHeight="768">
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			protected function myFlex_resultHandler(event:ResultEvent):void
			{
				var name:String=event.result as String;
				Alert.show(name);
			}
			
			
			protected function btnSend_clickHandler(event:MouseEvent):void
			{
				myFlex.sayHelloToYou(txtName.text);
			}
			
		]]>
	</fx:Script>
	<fx:Declarations>
		<mx:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"/>
	</fx:Declarations>
	<s:Panel x="87" y="20" width="250" height="200" title="hello,everybody!">
		<s:TextInput x="16" y="37" id="txtName"/>
		<s:Button x="168" y="38" label="发送" id="btnSend" click="btnSend_clickHandler(event)"/>
	</s:Panel>
	
</s:Application>

 
    五:以上步骤都是在tomcat开着的情况下进行的。

          但是,可能是我插件的问题吧。总是无法自动编译。所以我手动编译了

          编译好以后在项目中会有bin-debug文件夹,里面有与项目同名的flash文件,双击即可运行。

         

      

        

 

     如果一切顺利的话,最后效果就是:

   

   

 

 

ok。就这样吧。还有些比较奇怪的问题,请看下回分解!
 

 

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值