OpenAMF 配置文件详解

阅读更多

OpenAMF openamf-config.xml 配置
第一个标签

false

这个标签的存在的意义在于当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
第二个标签

Java
org.openamf.invoker.JavaServiceInvoker

这个标签是用来调用java端的服务的。
这里,提供了许多的invoker供你使用。
放在这里的是最常用的一个invoker。这个invoker的作用就是根据service的位置在classpath里面找到这个class,并且调用其中的方法。
另外,还可以使用其他的invoker,
比如EJB,Spring,WebService都是非常实用的invoker.
按照需要,放置这些invoker.
可以在example的配置文件里找到所有的invoker
第三个标签:自定义类的映射

org.openamf.examples.Person
org.openamf.examples.Person

这个映射的作用是让你的FlashClient接收到正确的类型。
比如,在flashclient端,你调用一个方法后,接收到一个resultObj
如果你不进行类型映射,那么,这个resultObj是没有类型的。他就是一个object.你无法使用这个object的方法,只能通过引用属性的方法引用到属性。
但是,如果你在这里做了映射,在flash里面就可以得到一个具有类型的object。
用 trace(resultObj instanceof org.openamf.examples.Person) 就可以看到效果。
这个标签可以重复,映射多个自定义class
第四个标签:命名你的service(注意,这个部分需要使用advancedGateway)

             
Directory

org.flashseer.Example

Java



addPerson


*



org.openamf.filter.BeanListToRecordSet

ignore
extraInfo




这个标签的意义在于它可以帮助你更快,更方便的找到flash remoting说调用的service.前面也提到了,如果你不指定的话,可能会导致每次openamf都要去做match,计算匹配值,然后取高的。

你可能感兴趣的:(OpenAMF 配置文件详解)