`
logicigam
  • 浏览: 32870 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Flex中动态获取services-config.xml中配置的ChannelSet

阅读更多
这两天在尝试做BlazeDS和Spring security的整合,在做登陆的时候发现需要调用*(ChannelSet).login(name,pass)才能调用spring Security的组件实现验证。但是问题来了,这个ChannelSet从哪儿来??总不能自己凭空new一个吧??google了一下返现Christophe Coenraets给的spring-flex-testdrive里也是直接通过
var channel:AMFChannel = new AMFChannel("my-amf", "http://localhost:8080/messagebroker/amf");
var channelSet:ChannelSet = new ChannelSet();
channelSet.addChannel(channel);

来得到ChannelSet,这样硬编码明显不行,部署路径一变马上就白瞎了,继续google半天未果,逼急了我直接加断点调试进源码里看,最终发现可以通过一下的方法来获得在services-config.xml中配置的ChannelSet:
var cs:ChannelSet=ServerConfig.getChannelSet(destination);

这里的destination可以是任何一个泥已知的RemoteObject的destination,这样就会自动取到该RemoteObject得默认destination,也就是services-config.xml中default-channels标记所配置的ChannelSet。
通过
var c:Channel=ServerConfig.getChannel("my-secure-amf", false);

即可获得services-config.xml中任意id的channel。
分享到:
评论
4 楼 logicigam 2012-06-18  
shengbeiniao 写道
哥们,有个疑问,你说部署路径更改后,通过你这种方式就不会报找不到messagebroker的错误么?我觉得编译的时候已经把远程访问地址编译进flash了,不然flash作为客户端是如何获取服务器地址的,这跟超链接一个概念。所以更改部署路径,是需要重新编译flash的。

只有一种方式,就是把flash嵌入到jsp中,先在jsp获取servletcontext的ip、端口、上下文目录,传递给flash,然后构造AMFChannel,这个相当于jsp的动态编译。


也不是,这种方式可以把channel信息放在配置文件里,这样即使你的flash不编译,只要修改配置文件重启服务器就可以变更地址了,这样比写在jsp里相对合理一些,页面中应该只有UI展示相关的逻辑,不应该包含这些可能随部署环境变化而改动的配置参数信息。
3 楼 shengbeiniao 2012-06-05  
哥们,有个疑问,你说部署路径更改后,通过你这种方式就不会报找不到messagebroker的错误么?我觉得编译的时候已经把远程访问地址编译进flash了,不然flash作为客户端是如何获取服务器地址的,这跟超链接一个概念。所以更改部署路径,是需要重新编译flash的。

只有一种方式,就是把flash嵌入到jsp中,先在jsp获取servletcontext的ip、端口、上下文目录,传递给flash,然后构造AMFChannel,这个相当于jsp的动态编译。
2 楼 luoyexian 2010-02-27  
你好!我也遇到这样的问题。但就是怎么样。在其他机器访问服务器都是登录不了。也就是访问不了远程。但本机访问是没有问题。说是安全沙箱的问题。但我也根据相关信息配置了。结果还是一样。能帮忙解决下吗?我用的是flex3.2。所有的配置文件都是myec自动生成的,想请教下 service-config.xml等几个文件该怎么配置才是对的。谢谢
1 楼 zhang8418370 2010-01-19  
能不能说清楚些啊!我也遇到这样的问题??谢谢啦!!

相关推荐

    Flex中采用Flex-config.xml进行命令行的编译

    在Flex开发过程中,`flex-config.xml`文件是一个至关重要的配置文件,它允许开发者自定义Adobe Flex编译器的行为。这个文件通常位于项目的根目录下,用于控制编译过程中的各种选项,包括SWF版本、优化设置、元数据、...

    FLex 服务器端:配置remote-config.xml.docx

    Flex 服务器端配置远程服务是实现Flex客户端与服务器交互的关键步骤。远程配置文件`remote-config.xml`...在实际开发中,根据项目的具体需求,灵活调整`remote-config.xml`的配置,可以实现各种复杂的远程服务场景。

    blazeds-bin-3.3.0.22497.zip

    配置BlazeDS时,你需要修改blazeds.war中的配置文件,例如flex-config.xml和services-config.xml,定义Remoting endpoints和MessageBroker channels。此外,你还需要在服务器端设置相应的数据源,并确保Java应用程序...

    BlazeDS配置文件说明

    `MessageBrokerServlet`在Web应用启动时加载,并通过`<init-param>`指定配置文件`services-config.xml`的位置。 2. **services-config.xml服务配置文件** - `services-config.xml`是BlazeDS的主要配置文件,用于...

    Flex-jsp两个必要jar包

    4. **定义服务**:在`services-config.xml`文件中,定义Flex客户端与Java后端的连接点,包括通道设置和服务定义。 5. **编写Flex代码**:在Flex应用程序中,使用`RemoteObject`或`WebService`组件来调用Java后端的...

    Flex开发手册 环境搭建手册

    为了配置BlazeDS,我们需要在Java工程的WEB-INF目录下创建一个名为flex的文件夹,并在此处创建四个关键配置文件:messaging-config.xml、proxy-config.xml、remoting-config.xml和服务配置services-config.xml。...

    整合flex和spring常遇到的问题

    而Flex配置文件如`flex-config.xml`、`services-config.xml`等也需要放置在合适的位置。 **解决方法:** - `webroot`目录下通常包含Flex配置文件以及其他静态资源文件。 - `flex-config.xml`和`services-config.xml...

    FLEX与JSP结合并测试HTTPService与java用XML通信.doc

    总结来说,本文档提供了在Java JSP环境中集成Flex的详细步骤,包括设置Flex JSP标签库、配置Flex Data Services以及利用HTTPService进行XML通信。这种结合使得开发者能够充分利用Flex的图形界面优势,同时利用Java的...

    Spring-Flex架构分析

    在`services-config.xml`中,我们可以配置远程服务、消息代理和通道设置,使得Flex客户端能够调用Spring服务层的方法,实现数据的双向传输。 再来看`web.xml`,这是标准的Servlet容器配置文件,用于定义Servlet、...

    Flex-Java-Demo.rar_flex_flex 控件

    7. **文件结构分析**:压缩包中的"Flex-Java Demo"可能是项目文件夹,里面可能包含Flex工程文件(如.mxml和.as)、Java源代码、配置文件(如services-config.xml)、测试用例等。深入研究这些文件将帮助理解整个系统...

    spring-blazeds-reference.rar_blazeds-bin-4._flex

    配置BlazeDS涉及到Spring上下文配置和BlazeDS配置文件(services-config.xml)。在Spring配置中,需要定义要公开的服务bean,并指定其AMF通道。在BlazeDS配置文件中,定义了通道集、目的地以及安全设置,确保数据...

    flex 入门必看,flex,java 操作

    在`WEB-INF`目录下创建`flex`文件夹,并创建四个配置文件:`messaging-config.xml`, `proxy-config.xml`, `remoting-config.xml`, `services-config.xml`,它们定义了Flex应用与Java后台的交互规则。在`web.xml`中,...

    Flex-LCDS-Java.rar_LCDS_flex_flex java

    3. **配置LCDS**:理解LCDS的配置文件(services-config.xml),如何定义数据通道和服务,以及如何映射Java类到Flex客户端。 4. **数据访问**:使用RemoteObject或HTTPService组件从Java后端获取数据,了解AMF的...

    Flex搭建步骤

    在Web项目的`WEB-INF`目录下创建`flex`子目录,用于存放BlazeDS相关的配置文件和服务定义,如`services-config.xml`。这是BlazeDS查找服务配置的默认位置,也是上述web.xml配置中所引用的路径。 #### 4. 配置...

    flex 与 java 通讯 (个人修改版)

    - **服务包含**:`services-config.xml`中包含了其他配置文件,如`remoting-config.xml`,这是设置Flex与Java通信的基本服务配置。 - **安全设置**:虽然没有详细展开,但`<security>`部分涉及登录命令,用于处理...

    flex与java通信

    在`services-config.xml`中,定义远程服务,将Java的`FlexService`接口暴露给Flex客户端: ```xml <!-- services-config.xml配置片段 --> <services> <service id="flex-service" class="flex.messaging.services....

    Flex与Spring整合详解

    - 在`services-config.xml`中声明SpringFactory,如`com.accp.common.SpringFactory`,作为Flex Remoting的工厂类。 ```xml <factory id="spring" class="com.accp.common.SpringFactory" /> ``` 3. **配置...

    flex与struts2整合

    同时,在`WEB-INF`目录下创建`flex`文件夹,存放Flex所需的配置文件,如`messaging-config.xml`、`proxy-config.xml`、`remoting-config.xml`和`services-config.xml`。这些文件定义了Flex客户端与服务器之间的通信...

Global site tag (gtag.js) - Google Analytics