blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)

一、建立Flex与Java交互的工程。

本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人。

首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN、JavaEye上下到。解压缩这个包,将里面的Blazeds.war解压,后面建立工程时要使用。

在MyEclipse中建立一个web工程,名为FlexTest。(注意:这个工程的JDK一定是1.5或以上版本,本文使用6.0)

将刚才解压的Blazeds.war包中的“META-INF”与“WEB-INF”文件夹以及文件夹中的内容拷贝到工程的WebRoot下。WEB-INF中包含有Flex的配置文件以及Blazeds需要的Jar包。这时我们就可以在这个工程中写入Java代码了。本文以一个用户列表为例,建立用户实体类。代码如下:

代码

package com.rocd.flex.entity;

import java.io.Serializable;

public class UserBean implements Serializable {

private String userName;

private String password;

private int age;

private String email;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

注意,由于这个实体类需要当做Java代码中方法的返回值传递给Flex中的AS代码,所以需要继承Serializable接口,否则将导致异常的发生。

然后,在建立一个供Flex调用的Java类。代码如下

package com.rocd.flex.biz;

import java.util.ArrayList;

import java.util.List;

import com.rocd.flex.entity.UserBean;

public class UserManager {

public List getUserList() {

List list = new ArrayList();

for (int i = 0; i < 10; i++) {

UserBean user = new UserBean();

user.setUserName("用户" + i);

user.setPassword("123");

user.setAge(20 + i);

user.setEmail("user" + i + "@aaa.com");

list.add(user);

}

return list;

}

}

这里就不连接数据库去操作了,因为本文重点放在Flex调用Java上,所以写个桩数据用以测试。

写完了这两个类,就需要在WebRoot/WEB-INF/flex/remoting-config.xml中配置用以调用这个Java类的信道了。具体代码如下:

class="flex.messaging.services.RemotingService">

class="flex.messaging.services.remoting.adapters.JavaAdapter"

default="true"/>

com.rocd.flex.biz.UserManager

其中destination就是信道,properties是可以配置多个Java类,source是配置要调用Java类的包路径。

配置多个destination:

1

2   

3   com.bless.login.service.impl.LoginServiceImpl

4   

5

6

7   

8   com.bless.ospm.service.impl.LoginInfoServiceImpl

9   

10

到此,Java部分的代码就写完了。下面是Flex中的代码。

在Flex Builder中创建一个Flex工程。名称为FlexApp。如图所示

4ae2424171d5a698ab9ab27874cb53a3.png

注意Server location中Root folder要选择Java Web工程的WebRoot路径。Root URL是Java web工程的访问路径,由于使用的是Tomcat服务器,工程名为FlexTest,所以路径是http://localhost:8080/FlexTest/,而 Context root则是Java Web项目的工程名。完成后点击那个[Validate Configuration]进行验证,如果窗口上方显示如上图所示的“黄三角”就说明可以进行下一步操作了。

顺利建立完Flex工程后,需要注意是否报错,如果报错,请注意调整Flex SDK的版本。

没问题后,就要创建一个AS的类,用来接收Java程序的返回值了,也就是那个UserBean。代码如下:

package com.rocd.flex.entity

{

[Bindable]

[RemoteClass(alias="com.rocd.flex.entity.UserBean")]

public class UserBean

{

public var userName:String;

public var password:String;

public var age:int;

public var email:String;

}

}

这里[Bindable]是可绑定的,[RemoteClass(alias="com.rocd.flex.entity.UserBean")]是和Java代码中的UserBean类关联起来。这样就可以利用类型转换来将Java对象转换为AS对象了。

现在让我们在Flex中调用这个Java代码吧。代码如下:

fontSize="12" initialize="init()">

import com.rocd.flex.entity.UserBean;

import mx.collections.ArrayCollection;

import mx.rpc.events.ResultEvent;

private function init():void

{

UserManager.getUserList();

UserManager.addEventListener(ResultEvent.RESULT,getUserList);

}

private function getUserList(event:ResultEvent):void

{

var userList:ArrayCollection = ArrayCollection(event.result);

var userList_FlexData:ArrayCollection = new ArrayCollection();

for (var i:int = 0; i < userList.length; i++)

{

var user:UserBean = UserBean(userList.getItemAt(i));

userList_FlexData.addItem(user);

}

dataGrid.dataProvider = userList_FlexData;

}

]]>

showBusyCursor="true" />

启动Tomcat服务器后运行这个Flex程序,如下图所示:

d843ac44f15a3f791e80d3e9a16decb2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从行业应用到智慧城市,升哲科技Alpha协议如何保障物理世界的数据传输

随着国家《“十四五”信息通信行业发展规划》和《物联网新型基础设施建设三年行动计划&#xff08;2021-2023年&#xff09;》的政策出台&#xff0c;物联网的产业发展迎来了新一波浪潮。在农业、制造业、生态环境、智慧消防等场景下&#xff0c;以数字化转型、智能化升级为动力…

Serverless 工程实践 | 零基础上手 Knative 应用

简介&#xff1a; Knative 是一款基于 Kubernetes 的 Serverless 框架。其目标是制定云原生、跨平台的 Serverless 编排标准。 Knative 介绍 Knative 通过整合容器构建&#xff08;或者函数&#xff09;、工作负载管理&#xff08;动态扩缩&#xff09;以及事件模型这三者实现…

DataWorks功能实践速览 05——循环与遍历

简介&#xff1a; DataWorks功能实践系列&#xff0c;帮助您解析业务实现过程中的痛点&#xff0c;提高业务功能使用效率&#xff01;通过往期的介绍&#xff0c;您已经了解到在DataWorks上进行任务运行的最关键的几个知识点&#xff0c;其中上期参数透传中为您介绍了可以将上游…

阿里安全开源顶尖技术“猎豹” 计算更快数据更安全

两家公司想开展合作&#xff0c;发挥各自优势联合开发一款产品&#xff0c;如何以“隐私计算”的形式&#xff0c;在保护隐私的情况下&#xff0c;高效地实现两方联合计算&#xff0c;便成为解决这一问题的关键。 最近&#xff0c;阿里安全最新研发的Cheetah&#xff08;猎豹&…

PaddlePaddle:在 Serverless 架构上十几行代码实现 OCR 能力

简介&#xff1a; 飞桨深度学习框架采用基于编程逻辑的组网范式&#xff0c;对于普通开发者而言更容易上手&#xff0c;同时支持声明式和命令式编程&#xff0c;兼具开发的灵活性和高性能。 飞桨 (PaddlePaddle) 以百度多年的深度学习技术研究和业务应用为基础&#xff0c;是中…

云原生体系下 Serverless 弹性探索与实践

简介&#xff1a; SAE 通过对弹性组件和应用全生命周期的不断优化以达到秒级弹性&#xff0c;并在弹性能力&#xff0c;场景丰富度&#xff0c;稳定性上具备核心竞争力&#xff0c;是传统应用 0 改造上 Serverless 的最佳选择。 作者&#xff1a;竞霄 Serverless 时代的来临 …

java jndi使用_Java项目中使用JNDI连接数据库

因为写的大作业经常用到数据库连接 所以自己写了个数据库连接的类 package DB_Link_info;/* * 数据库链接信息 */public class DB_link_Info {public static final String driverName "com.microsoft.sqlserver.jdbc.SQLServerDriver";public static开发环境为Java,…

Joint Consensus两阶段成员变更的单步实现

简介&#xff1a; Raft提出的两阶段成员变更Joint Consensus是业界主流的成员变更方法&#xff0c;极大的推动了成员变更的工程应用。但Joint Consensus成员变更采用两阶段&#xff0c;一次变更需要提议两条日志&#xff0c; 在一些系统中直接使用时有些不便。那么Joint Consen…

真香!8 行代码搞定最大子数组和问题

作者 | 码农的荒岛求生来源 | 码农的荒岛求生今天给大家带来一道极其经典的题目&#xff0c;叫做最大和子数组&#xff0c;给定一个数组&#xff0c;找到其中的一个连续子数组&#xff0c;其和最大。示例&#xff1a;输入: nums [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 子数组…

深度干货|云原生分布式数据库 PolarDB-X 的技术演进

简介&#xff1a; 深入解读PolarDB-X的产品架构&#xff0c;以及分布式事务、透明分布式、水平扩展等技术内幕。 一、PolarDB-X是什么 PolarDB-X最早起源于阿里集团2009年提出用分布式架构替代传统商业数据库&#xff0c;阿里研发了TDDL分库分表中间件。2014年阿里集团开始全…

OpenStack 如何跨版本升级

作者 | 孙琦来源 | 万博智云OpenStack是中国私有云的事实标准根据三方统计报告&#xff0c;2020年&#xff0c;中国私有云市场规模达到951.8亿元&#xff0c;同比增长42.1%&#xff0c;私有云在国内IaaS市场占比约45%。私有云提供商有望在云计算市场持续高速发展进程中持续受益…

流计算引擎数据一致性的本质

简介&#xff1a; 本篇文章从流计算的本质出发&#xff0c;重点分析流计算领域中数据处理的一致性问题&#xff0c;同时对一致性问题进行简单的形式化定义&#xff0c;提供一个一窥当下流计算引擎发展脉络的视角&#xff0c;让大家对流计算引擎的认识更为深入&#xff0c;为可能…

java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?

原标题&#xff1a;Java的IO流之字节流&#xff0c;必须要学得内容&#xff0c;你会嘛&#xff1f;伙伴们~端午节过的如何呀~有没有很开心呀~假期已过咱们继续开动了IO流先来认识一下IO流&#xff1a;IO流用来处理设备之间的数据传输&#xff0c;Java对数据的操作是通过流的方式…

为什么大家都在抵制用定时任务实现「关闭超时订单」功能?

作者 | 阿Q来源 | 阿Q说代码前几天领导突然宣布几年前停用的电商项目又重新启动了&#xff0c;让我把代码重构下进行升级。让我最深恶痛觉的就是里边竟然用定时任务实现了“关闭超时订单”的功能&#xff0c;现在想来&#xff0c;哭笑不得。我们先分析一波为什么大家都在抵制用…

面对疾风吧,如何搭建高协同的精准告警体系?

简介&#xff1a; 想要实现AiOps&#xff0c;智能告警少不了。Arms 告警运维中心让面向告警的组织协同更加便捷高效&#xff01; 作者&#xff5c;九辩 世上没有一个系统是百分之百尽善尽美的。如果想要保证可用性&#xff0c;那么技术团队就得对服务的各种状态了如指掌&…

KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点

简介&#xff1a; 10 月 16 日上海&#xff0c;OAM/KubeVela、OpenKruise、OCM 三大开源项目的社区负责人、核心贡献者和企业用户将齐聚 KubeMeet&#xff0c;和现场 100 名开发者聊聊新的技术环境和企业需求下&#xff0c;有关“云原生应用管理”的那些事儿。 随着云原生关注…

Redis 究竟适不适合当队列来用?

‍作者 | Magic Kaito来源 | 水滴与银弹我经常听到很多人讨论&#xff0c;关于「把 Redis 当作队列来用是否合适」的问题。有些人表示赞成&#xff0c;他们认为 Redis 很轻量&#xff0c;用作队列很方便。也些人则反对&#xff0c;认为 Redis 会「丢」数据&#xff0c;最好还是…

EDA 事件驱动架构与 EventBridge 二三事

简介&#xff1a; 事件驱动型架构 (EDA) 方兴未艾&#xff0c;作为一种 Serverless 化的应用概念对云原生架构具有着深远影响。当我们讨论到一个具体架构时&#xff0c;首当其冲的是它的发展是否具有技术先进性。这里从我们熟悉的 MVC 架构&#xff0c;SOA 架构谈起&#xff0c…

如果被问到分布式锁,应该怎样回答?

作者 | tech-bus.七十一来源 | 程序员巴士说到锁&#xff0c;在平时的工作中&#xff0c;主要是使用synchronized关键字&#xff0c;或者相关的一些类库来实现同步&#xff0c;但这都是基于单机应用而言的&#xff0c;当我们的应用多实例部署时&#xff0c;这时候就需要用到分布…

工业视觉智能实战经验之IVI算法框架2.0

简介&#xff1a; 工业视觉智能团队在交付了多个工业视觉智能质检项目后&#xff0c;发现了工业视觉智能的共性问题和解法&#xff0c;打造了工业视觉智能平台&#xff0c;通过平台的方式积累和提升工业视觉的通用能力。在平台建设上最核心的能力是算法能力。算法能力包括不断增…