`
一头狼
  • 浏览: 18722 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Flex系列--1--构建Flex4为前端的Java EE项目

阅读更多

在继续本教程之前你需要准备好以下事项:
已安装 JDK(截稿时最新版 JDK 6 Update 20),并设定好 JAVA_HOME 环境变量(Tomcat 启动需要);
下载 Tomcat(截稿时最新版 Tomcat 6.0.26)解压到适当目录,确保 Tomcat 启动正常;
已在“Eclipse IDE for Java EE Developers“(截稿时最新版基于 Eclipse 3.5)基础上正确安装了 Flash Builder 4 插件(可试用 60 天);
下载最新版 BlazeDS(截稿时最新版 blazeds 4.0.0.14931),解压备用;
已对 Flex 基本了解。
第一步:添加 Apache Tomcat 运行时

从 Window 菜单选择 Preferences
在 Preferences 对话框中展开 Server,然后选择 Runtime Environments
在 Server Runtime Environments 页点击 Add,打开 New Server Runtime Environment 对话框
在 New Server Runtime Environment 页展开 Apache
从下面支持的 Apache Tomcat 服务器中选择一个(我用的是 Apache Tomcat v6.0):
Apache Tomcat v3.2
Apache Tomcat v4.0
Apache Tomcat v4.1
Apache Tomcat v5.0
Apache Tomcat v5.5
Apache Tomcat v6.0
当你添加一个 Server Runtime Environment 时,默认会创建一个 Server 并作为实体添加在 Servers 视图(View)内。如果你只想添加 server runtime environment 而不想在 Servers 视图内创建 Server,那么清除 Create a new local server 前的多选框(我们选上这个多选框免得之后手动创建 Server)
当你点击 Next 时会打开 Tomcat Server 页
在 Tomcat installation directory 项选择 Apache Tomcat 目录(例如:D:\apache-tomcat-6.0.26)
点击 Tomcat Server 页的 Finish
点击 Server Runtime Environment 页的 OK(如 6 所述,此时 Servers 视图内会显示一个 Server) 


第二步:使用 WTP 创建 Java/Flex 组合项目
切换到 Java EE 视图(perspective)
在 Project Explorer 视图(View)内点击右键,选择 New 项
选择子菜单中的 Project… 项,打开 New Project 对话框
展开 Flash Builder,选择“ Flex 项目“(因为我是中文系统所以 Flash Builder 的菜单项都显示为中文,尽管我的 Eclipse 为英文)
点击 Next
在“新建 Flex 项目”对话框中对应以下几项:
项目名:sampleApp
项目位置:默认即可
应用程序类型:Web
Flex SDK 版本:默认即可
应用程序服务器类型:J2EE
远程对象访问服务:选择 BlazeDS
使用 WTP 创建 Java/Flex 组合项目:选上
点击 Next
在“配置 J2EE 服务器”页对应以下两项,其他项默认即可
目标运行时:Apache Tomcat v6.0
BlazeDS WAR 文件:选择上面准备好的 blazeds.war
点击 Next
输出文件夹 URL:http://localhost:8080/sampleApp
点击 Finish
按提示切换到 Flash 视图(perspective),向 sampleApp.mxml 中拖入 DataGrid 控件以备后用
项目结构图:


第三步:运行 sampleApp 项目

重新切换到 Java EE 视图(perspective)
在 Servers 视图(View)中的 Server 内添加 sampleApp 项目
启动此 Server
以“Web 应用程序”的方式运行项目
如果看到刚才拖入的表格,恭喜你成功了
第四步:使 Flex 以 RemoteObject 的方式与 Java 交互
是不是觉得表格太空洞了?下面我们用它显示雇员信息,借此演示 Flex 与 Java 的交互过程。
创建 com.sample 包
在包内创建两个类: 雇员类 Employee,雇员的 Service 类 EmployeeService
package com.sample;

public class Employee {
    private String name;
    private int age;
    private String email;

    public Employee(String name, int age, String email) {
    this.name = name;
    this.age = age;
    this.email = email;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setAge(int age) {
    this.age = age;
    }

    public int getAge() {
    return age;
    }

    public void setEmail(String email) {
    this.email = email;
    }

    public String getEmail() {
    return email;
    }
}
package com.sample;

import java.util.ArrayList;

public class EmployeeService {
    public ArrayList getList() {
    ArrayList tempList = new ArrayList();

    for (int i = 1; i <= 30; i++) {
        tempList.add(new Employee("Smith"+i, 20+i, "smith"+i+"@test.com"));
    }

    return tempList;
    }
}


在 remoting-config.xml 文件中定义 EmployeeService 对应的 destination
<destination id="employeeServiceDest">
    <properties>
        <source>com.sample.EmployeeService</source>
    </properties>
</destination>


在 sampleApp.mxml 中通过 employeeServiceDest 调用 EmployeeService 的 getList() 方法
定义显示雇员信息的表格
<mx:DataGrid x="32" y="25" width="400" dataProvider="{employeeList}">
    <mx:columns>
        <mx:DataGridColumn headerText="Name" dataField="name"/>
        <mx:DataGridColumn headerText="Age" dataField="age"/>
        <mx:DataGridColumn headerText="Email" dataField="email"/>
    </mx:columns>
</mx:DataGrid>


定义 RemoteObject 组件
<fx:Declarations>
    <mx:RemoteObject id="employeeServiceRO" destination="employeeServiceDest"
                     result="resultHandler(event);"
                     fault="faultHandler(event);"/>
</fx:Declarations>


定义相关函数
<fx:Script>
    <![CDATA[
        import mx.controls.Alert;
        import mx.rpc.events.ResultEvent;
        import mx.rpc.events.FaultEvent;

        [Bindable]
        private var employeeList:Object;

        private function init():void {
            employeeServiceRO.getList();
        }

        private function resultHandler(event:ResultEvent):void {
            employeeList = event.result;
        }

        private function faultHandler(event:FaultEvent):void {
            //Alert.show(event.fault.faultString, 'Error');
            Alert.show(event.toString(), 'Error');
        }
    ]]>
</fx:Script>
当 Application 完成构建后立即触发 init() 方法,以实现对 Server 端 Java 的调用
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="955" minHeight="600"
               creationComplete="init();">


第五步:重新运行 sampleApp 项目
很不幸  ,RPC 过程失败了(Adobe Flash Builder 的 Bug 吗?)

注意到上图用黑色背景标注的内容了吧?本应该是 sampleApp,但现在却成了 WebContent。
我们需要处理一下:
打开项目根文件夹下的 .flexProperties 文件,更改其中的 serverContextRoot=”/WebContent” 为 serverContextRoot=”/sampleApp”。
OK,再运行试试吧(别忘了刷新项目)。

 

分享到:
评论

相关推荐

    构建Flex4为前端的Java EE项目

    ### 构建Flex4为前端的Java EE项目 #### 知识点概述 本文将详细介绍如何构建一个使用Flex4作为前端界面的Java EE项目。这一整合不仅能够利用Flex4丰富的用户界面组件库来提高用户体验,还能充分发挥Java EE在后端...

    Flex-LCDS-Java.rar_LCDS_flex_flex java

    Flex、LCDS(LiveCycle Data Services)和Java的结合是Adobe Flex开发中常见的技术栈,主要用于构建富...这是一门涵盖Flex前端开发和Java后端服务的综合性课程,对于希望从事RIA开发的程序员来说,是一份宝贵的资源。

    Myeclipse整合flex4搭建java的Web项目

    2. **创建Java Web项目**:打开MyEclipse 8.0,创建一个新的Java Web项目,并选择Java EE 5.0作为项目类型。 - 如图2所示。 3. **部署Blazeds到Web项目**:将Blazeds解压后的两个文件夹复制到项目的`WebRoot`目录...

    java flex jar包

    Java是一种广泛使用的后端编程语言,而Flex则是一种基于ActionScript的前端框架,主要用于构建交互性强、图形用户界面丰富的Web应用。当我们谈论"Java Flex jar包"时,这通常是指使用Java来与Flex应用进行交互,通过...

    Flex + Java 最佳实例(附工程)

    使用 BlazeDS 或 GraniteDS 等中间件,可以轻松建立Flex前端与Java后端之间的通信桥梁。 四、学习资源——FlexClass 在提供的压缩包中,“FlexClass”可能是包含一个或多个示例项目,这些项目展示了如何在Flex中...

    Flex和java ee集成开发

    Flex与Java EE集成开发是构建富互联网应用程序(RIA)的一种常见技术组合,它结合了Adobe Flex的用户界面优势和Java EE的后端服务处理能力。本研究成果深入探讨了如何将这两种技术有效地融合在一起,以创建高效、...

    Flex+Java 文件上传

    在本文中,我们将深入探讨...这个系统允许用户在Flex前端选择文件,然后通过Java Servlet在后端处理文件上传,提供了一种灵活且可扩展的解决方案。在实际应用中,可以根据需求调整代码以满足特定的安全性和性能要求。

    java-cod-for-chat.rar_flex

    这个"java-cod-for-chat.rar_flex"压缩包很可能是包含了一组使用Flex技术开发的聊天应用代码,主要涉及到Java后端与Flex前端的交互。 1. **Flex框架**:Flex框架提供了一个强大的UI组件库,可以方便地创建具有丰富...

    Flex_LCDS_Java.rar_flex_flex java

    1. **Flex基础**:理解MXML和ActionScript的基本语法,学习如何创建Flex项目,使用Flex组件库构建用户界面。 2. **LCDS配置**:如何在Java应用服务器(如Tomcat、JBoss)上部署LCDS,配置Flex与Java的连接。 3. **...

    Flex与Java整合

    1. **MyEclipse + Flex插件**:MyEclipse是一款非常强大的集成开发环境(IDE),用于Java EE开发。其Flex插件可以方便地在MyEclipse中进行Flex项目的开发。 2. **Tomcat 6.0**:Tomcat是Apache软件基金会的Jakarta...

    felxJ2ee实例+整合Flex和J2ee--配置(带图)绝对完整

    本文将深入探讨“Flex+Java实例+整合Flex和J2EE--配置(带图)绝对完整”这一主题,旨在帮助开发者理解如何在实际项目中实现Flex与Java后端的有效通信。 Flex是一种基于ActionScript和MXML的开源框架,主要用于构建...

    flex与JAVA开发教程

    这两个文件将深入探讨如何在Flex前端与Java EE后端之间建立通信,以及如何使用BlazeDS作为中间件进行数据传输。 【标签】:“flex与JAVA开发教程” 这个标签明确了教程的核心内容,即Flex与Java的联合开发,特别是...

    将 Flex 集成到 Java EE 应用程序的最佳实践.docx

    1. **定义 Flex Service 接口**:首先,需要为 Flex 定义一个服务接口,该接口应该避免直接暴露 Java 特定的对象。这样做的目的是为了确保服务接口能够被不同类型的客户端(不仅仅是 Flex)所访问。 ```java ...

    将 Flex 集成到 Java EE 应用程序的最佳实践

    在现代企业级应用程序开发中,将富客户端技术如Adobe Flex与服务器端的Java EE平台集成是一种常见的需求。Flex以其强大的用户界面设计能力和丰富的交互性,为Web应用提供了卓越的用户体验。本文将深入探讨如何有效地...

    flex3读书笔记----flex整合hibernate

    8. **Web Project 创建**: 在MyEclipse中创建Web项目,包括设置项目名称、选择Java EE版本等步骤,这为部署Flex应用程序提供了基础。 9. **BlazeDS 集成**: Blazeds.war 文件的部署,意味着BlazeDS服务被集成到...

    flex+java+lcds做的简单demo

    总的来说,这个“flex+java+lcds做的简单demo”展示了如何使用Flex构建用户界面,Java处理业务逻辑,以及LCDS作为桥梁,实现前后端高效通信的RIA应用。它对于学习Flex、Java和LCDS的集成使用,以及理解RIA开发流程...

    Flex和Java通信-blazeds

    Flex和Java通信是一种常见的技术需求,特别是在构建富互联网应用程序(RIA)时,前端的Flex界面与后端的Java服务需要紧密交互。BlazeDS是Adobe公司推出的一个开源项目,专门用于实现Flex和Java之间的数据通信,它...

    【尝鲜】Flex Builder 4与Java整合开发

    Flex Builder 4是一款由Adobe公司推出的强大的Flex应用程序开发工具,它是基于Eclipse平台构建的,专为开发富互联网应用程序(RIA)而设计。这款IDE支持ActionScript、MXML以及Flex框架,使得开发者能够轻松创建交互...

    flex整合j2ee-在eclipse wtp环境下使用blazeds

    通过以上步骤,开发者能够在Eclipse WTP环境下构建出集成了Flex前端和Java EE后端的完整应用,利用BlazeDS实现高效的数据通信,为用户提供高度交互性的Web体验。这个过程涵盖了从客户端UI设计到服务器端服务开发,再...

Global site tag (gtag.js) - Google Analytics