java程序员学习Flex和BlazeDS有什么好处
2、 复制JAR文件到你的项目lib目录:cp -R WEB-INF/lib /sodaSample。
好处八:可以在现有的Java应用程序上使用
再soda的例子中,假设你想要暴露现有的soda服务以便远程的Flex应用程序可以与之链接。在现有的应用程序上创建BlazeDS的基本步骤如下:
1、 在WEB-INF/flex目录下编辑BlazeDS配置文件。
2、 在应用程序上web.xml上规定MessageBrokerServlet 以及session listener。
创建BlazeDS以后,你需要增加你的soda服务到BlazeDS远程配置文件,它允许从Flex 客户端访问soda服务。通过规定一个目的地以及一个或者更多的数据传送渠道来实现添加。基础的AMF渠道在服务器.xml文件中被定义。通过这个定义在远程config.xml 中识别你的目的地:
< destination id="sodaService" channels="my-amf">
< properties>
< source>com.gorillalogic.sodaSample.SodaService< /source>
< /properties>
< /destination>
通过在远程配置文件中定义端口,你可以从Flex客户端访问任何一个Java服务。
传递Java数据模型到Flex客户端,在你的脚本class中定义两者之间的映射:
[Bindable]
[RemoteClass(alias="com.gorillalogic.sodaSample.SodaModel")]
这段代码显示Flex,当远程服务访问返回Java SodaModel的结果把其映射到你的SodaModel。Flex客户端的示例显示如何访问这个Java服务。访问返回一个odaModel,根据你的命令:
public function callSodaService():void {
var sodaType:String = type.text;
var sodaCount:int = parseInt(cnt.text);
var flag:Boolean = preOpen.selected;
remoteObject.getSoda(sodaType, sodaCount, flag);
}
private function resultHandler(event:ResultEvent):void {
var sodaModel:SodaModel = event.result as SodaModel;
}
Flex从变化的结果中返回你的结果,映射到你的SodaModel上。我不在这里讲述细节,但是一个需要说的细节是在汇编配置中指定services-config.xml,像以下所写:
-locale en_US -services=/nsource/sodaSample/web/WEB-INF/flex/services-config.xml -context-root /
如果不这样,你的Flex客户端将无法找到Java服务。同样的方法,你可以从客户端传递一个对象返还到服务。比如,你可以传递空的soda model返还到客户端。
好处九:你可以扩展BlazeDS以及使用Java对其进行修改
假设你决定当soda服务器被访问的任何时候,要增加一个特别的logging。你可以扩展Java编辑者的标准来增加logging。
首先,增加Java类别扩展JavaAdapter:
import flex.messaging.services.remoting.adapters.JavaAdapter.
public class TimingJavaAdapter extends JavaAdapter {
Then, overload the invoke() method:
public Object invoke(Message message) {
RemotingMessage remotingMessage = (RemotingMessage) message;
String operation = remotingMessage.getOperation();
String destination = remotingMessage.getDestination();
Logger.info("calling " + operation + " on destination " + destination);
Object data = super.invoke(message);
return data;
}
使用这种方法,你可以看见即将要进行的操作以及访问的目的地。你可以使用这种简单的hook,比如说你可以测试对服务器多长时间的访问是最有意义的。
好处十:你可以从HTML 和JSP访问BlazeDS