blazeDS - 默认频道

时间:2011-08-24 12:50:49

标签: flex spring blazeds amf remoteobject

我想从我的服务中恢复RemoteObject。一切正常,但我的代码看起来像这样:

<mx:AMFChannel id="myamf"  uri="messagebroker/amf"/> 
<mx:ChannelSet id="channelSet" channels="{[myamf]}"/>
<mx:RemoteObject id="ro" channelSet="{channelSet}" destination="pServ" result="resultHandler(event);" fault="faultHandler(event);"/> 

有没有办法在我的.mxml文件中避免硬打字通道uri?

我尝试使用blazeds xml中的默认通道但没有成功。

那是我配置的一部分:

spring appContext.xml

<context:component-scan base-package="org.flex.test.services"/>
<flex:message-broker>
    <flex:remoting-service default-channels="my-amf"/>
</flex:message-broker>

<flex:remoting-destination ref="personService" destination-id="pServ"/> 

flex services-config.xml

<services>
    <default-channels>
       <channel ref="my-amf"/>
    </default-channels>

    <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>
    </service>
</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"/>
    </channel-definition>
</channels>

我从应用程序文件的根目录运行flex app - main.html。

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

默认通道可以使用,但您需要添加对services.xml的引用作为编译器参数,以便编译器知道默认值是什么。这样的事情应该可以解决问题...

-services {Your base directory}\src\main\webapp\WEB-INF\flex\services-config.xml