修改applicationContext.xml,增加BlazeDS与Spring集成配置,将Spring的bean导出为flex的Destination
共有三种方法可以将Spring的bean导出为felx的Destination
创建WEB-INF/applicationContext.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:flex="http://www.springframework.org/schema/flex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<!– Maps request paths at /messagebroker to the BlazeDS MessageBroker –>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/messagebroker/*=_messageBroker
</value>
</property>
</bean>
<!– Dispatches requests mapped to a MessageBroker –>
<bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter"/>
<!– Bootstraps and exposes the BlazeDS MessageBroker –>
<bean id="_messageBroker " class="org.springframework.flex.core.MessageBrokerFactoryBean" />
<!– Expose the productService bean for BlazeDS remoting –>
<!– method 1 –>
<!–
<bean id="test1" class="com.yeeach.HelloWorldService" />
<flex:remoting-destination ref="test1" />
–>
<!– method2 –>
<!–
<bean id="test1" class="com.yeeach.HelloWorldService" >
<flex:remoting-destination />
</bean>
–>
<!– method3 –>
<bean id="helloWorldService" class="com.yeeach.HelloWorldService" />
<bean id="test1" class="org.springframework.flex.remoting.RemotingDestinationExporter">
<property name="messageBroker" ref="mySpringManagedMessageBroker"/>
<property name="service" ref="helloWorldService"/>
</bean>
</beans>
7、创建flex-src/helloworld.mxml,内容如下
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:RemoteObject destination="test1"
id="test1">
<mx:method name="hello"
result="sayHelloResult(event)"/>
<mx:method name="world"
result="sayWorldResult(event)"/>
</mx:RemoteObject>
<mx:HBox>
<mx:Label text="输入:"/>
<mx:TextInput id="inputStr"/>
<mx:Button label="say hello"
click="sayHello(event);"/>
<mx:Button label="say world"
click="sayWorld(event);"/>
</mx:HBox>
<mx:HBox>
<mx:Label text="结果:"/>
<mx:TextArea id="result"/>
</mx:HBox>
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
function sayHello(event:Event):void
{
var inputVar:String=inputStr.text;
test1.hello(inputVar);
}
function sayWorld(event:Event):void
{
var inputVar:String=inputStr.text;
test1.world(inputVar);
}
private function sayHelloResult(event:ResultEvent):void
{
result.text=event.result.toString();
Alert.show(event.result.toString(), "返回结果");
}
private function sayWorldResult(event:ResultEvent):void
{
result.text=event.result.toString();
Alert.show(event.result.toString(), "返回结果");
}
]]>
</mx:Script>
</mx:Application>
共有三种方法可以将Spring的bean导出为felx的Destination
创建WEB-INF/applicationContext.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:flex="http://www.springframework.org/schema/flex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<!– Maps request paths at /messagebroker to the BlazeDS MessageBroker –>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/messagebroker/*=_messageBroker
</value>
</property>
</bean>
<!– Dispatches requests mapped to a MessageBroker –>
<bean class="org.springframework.flex.servlet.MessageBrokerHandlerAdapter"/>
<!– Bootstraps and exposes the BlazeDS MessageBroker –>
<bean id="_messageBroker " class="org.springframework.flex.core.MessageBrokerFactoryBean" />
<!– Expose the productService bean for BlazeDS remoting –>
<!– method 1 –>
<!–
<bean id="test1" class="com.yeeach.HelloWorldService" />
<flex:remoting-destination ref="test1" />
–>
<!– method2 –>
<!–
<bean id="test1" class="com.yeeach.HelloWorldService" >
<flex:remoting-destination />
</bean>
–>
<!– method3 –>
<bean id="helloWorldService" class="com.yeeach.HelloWorldService" />
<bean id="test1" class="org.springframework.flex.remoting.RemotingDestinationExporter">
<property name="messageBroker" ref="mySpringManagedMessageBroker"/>
<property name="service" ref="helloWorldService"/>
</bean>
</beans>
7、创建flex-src/helloworld.mxml,内容如下
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:RemoteObject destination="test1"
id="test1">
<mx:method name="hello"
result="sayHelloResult(event)"/>
<mx:method name="world"
result="sayWorldResult(event)"/>
</mx:RemoteObject>
<mx:HBox>
<mx:Label text="输入:"/>
<mx:TextInput id="inputStr"/>
<mx:Button label="say hello"
click="sayHello(event);"/>
<mx:Button label="say world"
click="sayWorld(event);"/>
</mx:HBox>
<mx:HBox>
<mx:Label text="结果:"/>
<mx:TextArea id="result"/>
</mx:HBox>
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
function sayHello(event:Event):void
{
var inputVar:String=inputStr.text;
test1.hello(inputVar);
}
function sayWorld(event:Event):void
{
var inputVar:String=inputStr.text;
test1.world(inputVar);
}
private function sayHelloResult(event:ResultEvent):void
{
result.text=event.result.toString();
Alert.show(event.result.toString(), "返回结果");
}
private function sayWorldResult(event:ResultEvent):void
{
result.text=event.result.toString();
Alert.show(event.result.toString(), "返回结果");
}
]]>
</mx:Script>
</mx:Application>