HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Derek Wischusen 论述集成 Flex、BlazeDS 和 Scala/Lift

  • 2008-02-13
  • 本文字数:1630 字

    阅读完需:约 5 分钟

去年 12 月 Adobe 宣布 LiveCycle Data Services 即将开源,叫做 BlazeDS 。BlazeDS 是一个开发于 JEE 平台之上的服务器端技术。它为那些基于 Flex 或 AIR 的 RIA 应用程序将其内容以流的方式传送及服务器端推送提供了方便。Flex on Rails 的 Derek Wichusen撰写了一篇关于 Flex、BlazeDS 和 Scala/Lift 集成的文章

关于 Adobe 的宣告,Wischusen 这样写道:

尽管这一宣告确实是受欢迎的消息,仍还有许多人考虑到自身因素对此消息并不感兴趣:“这很好,但是我不用 Java。”嗯,说它是好消息,是因为 BlazeDS 使用了 Java 平台并不就意味着你必须使用 Java 语言才能利用它的优势。实际上,Java 平台支持好几门语言,包括 Groovy Python Ruby 以及 Scala 。当然,还有 ColdFusion 。理论上,这些语言中任一门都可以很好的与 BlazeDS 直接集成。

Wischusen 继续解释了他为什么使用 Scala:

嗯,因为最近我决定扩展我的编程语言视野,我发现 Scala 既非常有趣也非常强大。它是面向对象的而且是函数式的语言,它有 mixin 类型的成分,它也有用于处理并发特性的 Erlang 式样的 Actors,还有很多很多。最后,可能是最合我意的,就是Scala 有一个卓越的Web 应用程序框架,叫做 Lift

概括来说,Wischusen 集成项目使用了最新版的 JDK 1.5+、 Scala Eclipse Eclipse 的 Scala 插件 Maven BlazeDS Flex 3 。在文章中,Wischusen 按照一步步的指示来动手创建一个 Lift 项目,以此开始编程。接着他使用 Maven 创建了一个 Eclipse 项目。一 旦所创建的 Lift 项目被引入到 Eclipse 项目中,BlazeDS 的 jar 文件就被添加进了构建路径。在展示了如何建立开发环境后, Wischusen 讨论了 Lift 是如何处理 HTTP 请求的:

Lift 是一个视图优先(view first)框架。这意味着默认情况下,Lift 将试图用视图(view)匹配一个 HTTP 请求。如果它找到了一个视图,它将处理该请求,并展现为 HTML。这里有更多关于 Lift 如何处理 HTTP 请求的信息。

在这一项目中,视图用的是 Flex,所以 Lift 没被用来当作 UI 的一部分。Lift 仅被配置用来处理 Web 服务。Wischusen 给出了 Scala 编程的细节步骤及代码样例。他详细解释了 Scala Actor

当 Notifier Actor 被启动(稍候你将看到这发生在哪儿)时,act 方法就会被调用。act 方法里第一件事是调用 ActorPing.schedule 助手方法。该 方法本质上是说,我想在 500 毫秒内发送通知消息给这个 Actor。接下来进入到循坏,这里只是简单的创建一个循环并有一个 case 语句用来处理到来的消 息。因此,当收到一个通知或一个“停止”消息时,所有用于这一情况的代码将被执行。

在创建服务器端应用程序之后,Wischusen 编写了一个 Flex 应用:

这里我们已经创建了一个应用程序,它有一个十分简单的 UI,由两个按钮和一个文本域组成。该应用还有两个 HTTP 服务 (HTTPServices)和消费者(Consumer)。这儿需要注意几个事情。首先,消费者订阅了名为“notificaitions”的目的地, 它和我们的 Notifier Actor 发布消息的目的地是相同的。其次,HTTPServices 调用 webservices/start_feed 和 webservices/stop_feed。如果你回想一下我们创建这个应用程序的过程,就会知道这些调用实际上会调用我们 WebServices 类中 的方法。

开发了应用程序后,Wischusen 写道:

你现在可以启动你的 Lift 应用了,启动 Flex 应用,点击“Subscribe to ‘notifications’”启动 Notifier Actor 并为消费者订阅名为“notifications”的目的地。你将看到 id 号,并且在文本输入域中的时间每 0.5 秒自动更新一次。你可以点击 “Unsubscribe from ‘notifications’”停止 actor,并取消消费者对“notifications”目的地的订阅。

最后,Wischusen 总结道:

有了这三个技术,实时地从服务器自动地将数据推送到客户端很容易实现。这只是一个微不足道的例子,但是我认为可以直接把这一方法扩展到更复杂的应用中。

这一项目的源代码分别被提供在 Life App Flex App 上。 查看英文原文: Derek Wischusen on Integrating Flex, BlazeDS and Scala/Lift

2008-02-13 19:141150
用户头像

发布了 150 篇内容, 共 45.7 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

卡奥斯智能交互引擎:引领工业智能,共创数字化未来

Openlab_cosmoplat

人工智能 大模型

多人同时大批量导出数据到 Excel 干崩服务器,如何处理?

源字节1号

开源

史上最大规模宕机事件的10个重要教训

我再BUG界嘎嘎乱杀

网络安全 安全 网安 CrowdStrike

利用JSON管理测试数据实现Pytest数据驱动测试:方法与实践

测吧(北京)科技有限公司

测试

20W+开发在线观看赛事直播平台:实战运营使用差异化与跟随战略案例

软件开发-梦幻运营部

在Pytest中使用Fixture作为参数的高级技巧与最佳实践

测吧(北京)科技有限公司

测试

Pytest中Fixture的yield用法

测吧(北京)科技有限公司

测试

多终端运行小程序丰富智慧社区使用场景

Geek_2305a8

活动预告|“AI+Security”系列第2期:对抗!大模型自身安全的攻防博弈线上活动即将开始

云起无垠

利用Pytest结合YAML实现数据驱动测试:深入解析与实践

测吧(北京)科技有限公司

测试

利用Excel管理测试数据实现Pytest数据驱动测试

测吧(北京)科技有限公司

测试

权限管理:RBAC和ACL在XIAOJUSURVEY的应用

XIAOJUSURVEY

服务端 权限控制 acl rbac Nest.js

解读Solana流动性质押发展现状:市场格局的悄然转变

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

流动的智慧:开创集成资产管理新局面 ——华为云ROMA Connect资产中心

华为云PaaS服务小智

API 华为云 企业数字化 资产中心

BricsCAD 24 for Mac(高效CAD建模软件) v24.2.06中文激活版

Mac相关知识分享

OpenAI发布了 “轻量化” GPT-4o mini 功能更强、成本更低

蓉蓉

GPT-4o mini

工信部:2024上半年我国信息安全领域收入909亿元

我再BUG界嘎嘎乱杀

网络安全 安全 信息安全 网安

什么是Fixture作用范围

测吧(北京)科技有限公司

测试

Pytest中autouse参数的用法

测吧(北京)科技有限公司

测试

Charles for Mac(HTTP协议抓包工具) v5.0b16注册激活版

Mac相关知识分享

什么是云原生?

源字节1号

开源

“CITE2025深圳电子展”重磅来袭,全新展会主题隆重揭晓!

AIOTE智博会

电子展 深圳电子展 电子信息展 电博会

利用CSV管理测试数据实现Pytest数据驱动测试:方法与实践

测吧(北京)科技有限公司

测试

通过Fixture实现参数化测试

测吧(北京)科技有限公司

测试

TunesKit Video Cutter for mac(视频分割编辑器) v3.0.0激活版

Mac相关知识分享

OmniOutliner 5 Pro for Mac(信息大纲记录工具) v5.13.1正式版

Mac相关知识分享

Tenable Nessus 10.8.0 发布,新增功能概览

sysin

漏洞扫描 Nessus 漏洞管理

我们程序员想晋升为什么这么难啊?

秃头小帅oi

比特币挖矿可能是一个 200 亿美元的市场,美国硬件推动:伯恩斯坦

dappweb

解锁拼多多商品数据:如何高效利用拼多多商品列表数据接口

tbapi

拼多多API 拼多多商品数据采集 拼多多商品列表数据接口 拼多多商品列表API

Network Control in Smart Manufacturing: Comparing IPQ9574 and IPQ5018

wallyslilly

ipq5018 ipq9574

Derek Wischusen论述集成Flex、BlazeDS和Scala/Lift_Java_Moxie Zhang_InfoQ精选文章