1、环境:jdk1.6,Flex4.6

2、工具:MyEclipse10

3、server:Tomcat7

4、连接方式:Blazeds

5、项目类型:Flex项目

6、步骤

(1)新建Flex项目一个,命名为FlexToJava

填写项目名之后,点击“下一步”。

选择BlazeDS,勾选“使用WTP…”,点击下一步,以下默认,完毕新建项目。

新建的项目文件夹例如以下

(2)将新建的项目增加到Tomcat中

启动Tomcat,执行FlexToJava .mxml页面,启动正常。

假设出现启动错误

在Tomcat文件夹conf下找到context.xml文件,添加一句就可以

(3)切换到Java端,新建一个Java类FlexToJava.java

(4)找到WebRoot\WEB-INF\flex文件夹下的remoting-config.xml,添加一段代码用于配置的Java类。这里的id就是Flex页面RemoteObject中的destination属性的值。

com.java.FlexToJava

(5)找到前台的Flex页面——FlexToJava.mxml,写入代码调用后台的Java方法。

详细代码例如以下:

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

import mx.controls.Alert;

import mx.rpc.events.ResultEvent;

protected function button1_clickHandler(event:MouseEvent):void

{

this.ro.getName(this.txt.text);

this.ro.addEventListener(ResultEvent.RESULT,getName);

}

protected function getName(event:ResultEvent):void

{

Alert.show(event.result.toString());

}

//这里有两种处理返回值的方法。一是在RemoteObject中直接写入,另一种是addEventListener

private function error(e:FaultEvent):void {

errorMsg.text=e.message.toString();

}

]]>

然后执行这个Flex文件。获得界面例如以下:

可是会报一个错

[RPC Fault faultString="Send failed"

faultCode="Client.Error.MessageSend"

faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404:

url: 'http://localhost:8080/WebRoot/messagebroker/amf'"]

观察这个错误,发现报的错中url这一项不正确,我们的地址应该是http://localhost:8080/FlexToJava,而非http://localhost:8080/WebRoot。故而要改动一个地方。

进入项目的“属性”菜单,

选择Flexserver。发现“内容目录”一项是“WebRoot”字样,记得把Flex编译器中编辑器參数改成

“-services "D:/Workspaces/FlexToJava/WebRoot/WEB-INF/flex/services-config.xml" -locale en_US”。不然会报错。由于Flexserver改动后这边会自己主动把WebRoot改成FlexToJava。要改回来。

(6)又一次部署项目,启动Tomcat,执行FlexToJava.mxml,填入姓名,点击button,弹出对话框。

成功!

这里要注意URL。默认出的URL会少一个out文件夹,须要在执行配置中再配置一下。或者在项目属性菜单中,Flex构建路径菜单下,输出文件夹URL项目填入

后记

试了几回,看能不能一次成功。结果不行,都是要再配置Flexserver中的内容目录,或者别的方法,这是我得出的比較明晰的一种方法了,大概还有更好的。能够一次成型,先凑合用吧。

这是从Flex端建Flex项目,然后嵌入Java的方式。还能够从Java端建Java Web项目。然后嵌入Flex。我试了几回也没成功,仅仅是学到一些别的东西。

从Java端建Java Web项目时。有一步是解压Blazeds.war包,将得到的WEB-INF替换掉新建项目的WEB-INF。这里面主要替换的就是WEB-INF下的flex目录下的四个配置文件、几个必须lib包和web.xml文件。

当中。flex目录下的四个配置文件里的remoting-config.xml文件,我们从中配置了一段代码,这段配置就是指引flex怎样訪问java对象,同一时候也是指引Blazeds配置类映射的功能。

另外这里配置的一定是实现类地址,不能是接口。services-config.xml文件,注冊数据通道,以下这段代码就定义了一个通道。Flex就通过这个通道与server通讯。

上面的url我们有些许似曾相识,与我们上面的一个报错“http://localhost:8080/WebRoot/messagebroker/amf”非常像吧,我们能够看出错误中WebRoot的位置应该放的是context.root(上下文根文件夹)。不知道是中文翻译过来的问题还是什么别的。我们的错误改动了“内容文件夹”的值之后就攻克了,可是这边的意思应该是取的“上下文根文件夹”的值。

关于Blazeds的知识和这几个配置文件的知识,还要继续学习。

java blazeds_Flex+Java+Blazeds相关推荐

  1. flex java blazeds_flex+java+blazeds 多通道好文

    环境: MyEclipse 7.5 Flash Builder 4 plugin for eclipse Tomcat 6 BlazeDS 4.0.0 springframework 3.0.3 Sp ...

  2. flex java blazeds_FLEX 与JAVA的LCDS BLAZEDS配置. | 学步园

    FLEX 与JAVA的LCDS BLAZEDS配置. 1.构架原理 Flash Remoting的原理类似于Resin的Hessian,都是使用基于HTTP协议的轻量级二进制协议,即AMF. Flas ...

  3. FLEX 与JAVA的LCDS BLAZEDS配置

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! FLEX ...

  4. java unlimited_具有无限参数的Java方法(Java method with unlimited arguments)

    具有无限参数的Java方法(Java method with unlimited arguments) Spring框架使用方法,您可以根据需要传递尽可能多的参数. 我想写一个函数,也可以采取无限量的 ...

  5. 介绍java -cp java -jar的区别

    java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号";" java -cp &am ...

  6. 【Java】Java连接Mysql数据库的demo示例

    [Java]Java连接Mysql数据库的demo示例 1.安装mysql数据库 2.下载java-mysql-connector.jar包 3.完成java配置 4.写java代码运行测试 1.安装 ...

  7. java抓取网页标题内容_[Java教程]java 网页页面抓取标题和正文

    [Java教程]java 网页页面抓取标题和正文 0 2014-07-10 09:01:30 import java.io.BufferedReader;import java.io.IOExcept ...

  8. Java基础-Java中的堆内存和离堆内存机制

    Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 转载于:https://www.cnblogs.com/yinzhengjie/p/9 ...

  9. Java 异常java.lang.IllegalArgumentException: Illegal group reference

    Java 异常java.lang.IllegalArgumentException: Illegal group reference 参考文章: (1)Java 异常java.lang.Illegal ...

  10. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

最新文章

  1. 【存储知识学习】第四章-七种RAID-《大话存储》阅读笔记
  2. 带有返回值的装饰器_如何使用带有工厂功能的装饰器
  3. 笨办法学 Python · 续 练习 9:`sed`
  4. [每日一题] 11gOCP 1z0-052 :2013-09-24 temporary tables.........................................C11...
  5. 把斯坦福大学土地租出去?特曼坦言:目的就是赚钱
  6. NHibernate Inheritance Mapping 继承映射
  7. spring和spring_Spring MVCGradle
  8. 全文搜索引擎 Elasticsearch 入门概念
  9. 全屏轮播代码淘宝店铺装修天-猫装修店铺装修代码全屏
  10. php如何打包成apk,windows下PHP批量生成打包android程序APK
  11. 安卓脚本用什么写_什么是抖音脚本?脚本有什么用?
  12. 使用3g模块SIM5360E收发短信
  13. 201771010112罗松《面向对象程序设计(java)》第七周学习总结
  14. html显示网上图片不显示不出来,网页图片显示不出来,教您网页不显示图片怎么办...
  15. 控制贺尔碧格PRL及PIL模块式RT-PVR6系列比例放大器
  16. 程序员与颈椎病(一) 我得了什么病
  17. rrpp协议如何修改_RRPP(快速环网保护协议)
  18. 机械硬盘低级格式化软件_西数硬盘专用修复工具_WD HDD Repair Tool|西部数据硬盘修复工具 V3.6 中文版 - 偶要下载站...
  19. vue遇到ie兼容问题如何处理_vue IE兼容性问题汇总
  20. spark.sql.shuffle.partitions 和 spark.default.parallelism 的区别

热门文章

  1. 单点登录CAS-01:如何找到适合自己JDK版本的CAS?
  2. 解密navicate保存的数据库连接密码
  3. 在Mind+下使用Easy loT实现mqtt消息消息的通讯
  4. 国内外最好的语料库汇总
  5. QCC3020开发问题汇总(更新中。。。)
  6. php特效表白代码,js爱心表白动画特效代码
  7. 手游加速器原理分析和代码实现
  8. seetaface6之画出人脸位置
  9. matlab希尔伯特变换,基于matlab的Hilbert变换详解
  10. HNOI2015解题报告