`
lixinye0123
  • 浏览: 333298 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

OpenAMF 配置文件 详解

    博客分类:
  • Flex
阅读更多
OpenAMF openamf-config.xml 配置

第一个标签

<amf-serializer>
                        <force-lower-case-keys>false</force-lower-case-keys>
</amf-serializer>

这个标签的存在的意义在于当openamf发送传递给Flash 客户端的AMF消息时,是否把用来返回自定义类的Hashmap里面的key转换成小写。
一边情况下,当我们发送一个hashmap给客户端时,客户端把它当作一个custom class的object来对待。

比如你有一个java方法返回一个hashmap

public Hashmap getValue(){

Hashmap resultObj=new Hashmap();
result.put("nameSpace","com.flashseer.org");
return resultObj;
}


在actionscript中你可以用

resultObj.nameSpace

的写法来引用java里面hashmap中的一个值。

当你把这个标签的属性设置为true的时候,返回给Flash client的object中,所有的key都被转换成小写。

所以,如果你使用Actionscript2.0的时候,因为AS2区分大小写。你就不可能用resultObj.nameSpace来引用了。
因为,nameSpace已经被转换为小写了。你必须使用namespace来引用。

这里,官方的example里面注释说了,
如果你用actionscrpt2.0的话,把这个设置为false。否则,如果你用了大写的字母作为key,在客户端就会出问题。
如果你用as1的话,可以设置为true


第二个标签


        <invoker>
                <name>Java</name>
                <class>org.openamf.invoker.JavaServiceInvoker</class>
        </invoker>
       
这个标签是用来调用java端的服务的。
这里,提供了许多的invoker供你使用。
放在这里的是最常用的一个invoker。这个invoker的作用就是根据service的位置在classpath里面找到这个class,并且调用其中的方法。

另外,还可以使用其他的invoker,
比如EJB,Spring,WebService都是非常实用的invoker.
按照需要,放置这些invoker.
可以在example的配置文件里找到所有的invoker

       
       
       
第三个标签:自定义类的映射
       
        <custom-class-mapping>
                <java-class>org.openamf.examples.Person</java-class>
                <custom-class>org.openamf.examples.Person</custom-class>
        </custom-class-mapping>

这个映射的作用是让你的FlashClient接收到正确的类型。
比如,在flashclient端,你调用一个方法后,接收到一个resultObj

如果你不进行类型映射,那么,这个resultObj是没有类型的。他就是一个object.你无法使用这个object的方法,只能通过引用属性的方法引用到属性。
但是,如果你在这里做了映射,在flash里面就可以得到一个具有类型的object。
用 trace(resultObj instanceof org.openamf.examples.Person) 就可以看到效果。


这个标签可以重复,映射多个自定义class


       
第四个标签:命名你的service(注意,这个部分需要使用advancedGateway)
        <service>
                <!--name这个 node定义一下你的service的名字,这样,你就不用在flash里面把你的整个class都写在里面了,而只需要用这个name来代替-->
                <name>Directory</name>
                <!--这个标签的作用其实就是让你指定你上面定义的那个name对应哪个class。-->
    <service-location>org.flashseer.Example</service-location>
                <!---这个标签 同上面的invoker标签对应,这样,一旦advancedGateway发现了你定义的这个service,就不用遍历所有的invoker来查找相应的服务。
                注意如果你没有定义这个的话,默认情况下,openamf会给所有可能的class打一个分,取分最高的来调用--->
    <invoker-ref>Java</invoker-ref>
               
                <!--这里定义一下需要call的方法-->
                <method>
                        <!-- 方法名 -->
                        <name>addPerson</name>
                        <!--参数定义,这里的参数可以使用一个class的名字或者使用通配符,
                        *就代表许多个参数,?代表一个参数-->
                        <parameter>
                                <type>*</type>
                        </parameter>
               
       
                        <!-- 这个result-filter实际上是可以自己来写实现的。实现org.openamf.filter.ResultFilter即可
                        其中,class标签中,是你需要使用的filter。 你可以使用两个由openamf提供的filter,也可以自己来实现。
                        其中parameter的两个标签其实就是一个自定义的object,你可以自己随便定义然后,在实现filter的时候来使用。
                         -->
                        <result-filter>
                                <class>org.openamf.filter.BeanListToRecordSet</class>
                                <parameter>
                                        <name>ignore</name>
                                        <value>extraInfo</value>
                                </parameter>
                        </result-filter>
                </method>
        </service>
       
        这个标签的意义在于它可以帮助你更快,更方便的找到flash remoting说调用的service.前面也提到了,如果你不指定的话,可能会导致每次openamf都要去做match,计算匹配值,然后取高的。 
分享到:
评论

相关推荐

    openamf-java

    3. **openamf-config.xml**:这是OpenAMF的配置文件,用于设置和管理服务器端的路由、服务、安全策略等。通过修改此文件,开发者可以配置OpenAMF的行为,比如指定哪些Java类暴露为远程服务,以及如何处理不同类型的...

    java调用openamf实例,把取回的结果转换成list或bean.

    在Java项目中集成OpenAMF,你需要下载并添加OpenAMF的JAR文件到项目的类路径。这通常包括`openamf.jar`和其他依赖库,如`flex-messaging-common.jar`等。确保所有必要的库都被正确引入。 2. **创建AMF客户端** 在...

    第十五节 OPENAMF.docx

    在本例中,可能是由于配置问题导致的错误,可以尝试修改该文件,确保其符合OpenAMF的要求。 【编写Java服务】 1. 创建一个简单的Java类,如`HelloWorld`,包含一个`sayHello`方法。这个方法接收一个字符串参数并...

    openamf-1.0RC12.zip

    FLEX连接java的开源框架

    openamf最完整实例java + flash+eclipse工程源码

    这通常涉及下载OpenAMF的JAR文件,将其添加到项目的类路径,并配置相应的服务器插件,如Tomcat或Jetty。 3. **创建Java服务**:在Java端,你可以定义服务接口和服务实现,OpenAMF会自动处理这些服务的AMF编码和解码...

    openamf-1.0RC12-exampless.rar

    1. **BasicExample**:基础示例,展示如何设置AMF服务端和客户端的基本配置,以及如何处理基本的数据交换。 2. **RemotingExample**:远程调用示例,演示了如何通过AMF实现实时的远程方法调用,这是AMF的主要应用...

    openamf-1.0.2

    《OpenAMF:开启Flash与服务器间的高效通讯》 OpenAMF,全称为Open Action Message Format,是一款开源的、基于AMF(Action Message Format)的通信框架,它为Flash客户端和服务器端之间的数据交换提供了高效的序列...

    构建FLASH和JAVA FOR SPRING应用(一)

    首先,`openamf-config.xml`是OpenAMF的配置文件,用于定义服务路由、数据转换规则以及其他设置。在Spring应用中,这个文件通常会配置AMF通道,以便Flash客户端可以通过HTTP与Spring的控制器进行交互。我们需要在这...

    openamf自行小改动获取客户端请求IP

    NULL 博文链接:https://balan326.iteye.com/blog/1285663

    Moonfree-开源

    6. **Desarrollo.pdf与Instalacion.pdf**:这两个PDF文件可能包含了Moonfree的开发指南和安装教程,详细阐述了如何使用此框架进行项目搭建和开发流程,包括配置环境、创建新项目、部署服务等步骤,对于初学者和...

    Flex4 SQL2005

    5. **复制并配置services-config.xml**:将services-config.xml文件复制到项目根目录下,并进行必要的配置调整。 6. **附加编译器参数**:在项目的属性设置中,修改附加的编译器参数,确保services-config.xml文件的...

    IM 即时通讯 开发实例

    在Flex中开发XMPP应用,通常会结合Adobe BlazeDS或OpenAMF等中间件,它们可以处理与Java后端的通信。BlazeDS提供了与Java Remoting和Web Services的集成,使得Flex客户端可以方便地调用服务器端的方法,实现XMPP功能...

    flex and blazed blazeds简单例子

    已经在早前就听说了,Adobe公司的开源项目bazeds,可是当时做flash,用到了openamf,所以没有在意,但是现在觉得flex开发应用软件更具有杀伤力,所以准备研究flex。折腾了一周的时间想做个flex+java的helloworld例子...

    struts,spring,hibernate.jar 包大全(五)

    - openamf.jar:可能是一个Flex或AMF(Action Message Format)相关的库,用于客户端与服务器间的数据传输。 - junit.jar:JUnit是Java单元测试的标准框架,用于编写和执行测试代码。 - jsp-api-2.0.jar:JavaServer...

    FLEX培训总结

    它通过解释MXML文件生成SWF文件,这些文件可以在Flash Player中运行。尽管Flex可以实现Flash的效果,但它的重点在于组件化的开发方式,为用户提供更丰富的交互体验,不同于HTML和JavaScript的传统网页交互。 Flex...

Global site tag (gtag.js) - Google Analytics