java整合flex
java+flex项目整合
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
private function resultHandler(event:ResultEvent):void {
Alert.show(event.result.toString(), "成功");
}
private function faultHandler(event:FaultEvent):void {
Alert.show(event.fault.toString(), "失败");
}
]]>
</mx:Script>
<!-- destination 属性值要和 remoting-config.xml 中 destination 的 id 一致-->
<mx:RemoteObject id="remoteObject"
destination="helloWorld"
result="resultHandler(event)"
fault="faultHandler(event)"/>
<mx:Button label="发送消息" click="remoteObject.getHello()" x="256.5" y="197"/>
</mx:Application>
1、 切换到 Flex视图,新建 Flex project,例如以下图
说明: Java source folder 就是你自己 java业务源代码存放的根文件夹,在 FB3 里, LCDS
项目旨在将 Java J2ee 项目和 FlexLcds 项目混合。
当然假设你不选择 combined 两个在一起,那么就麻烦些:要么你再单独新建一个
Flex 项目,而这个项目仅仅写 java代码。要么再建一个J2eeproject写 java代码,而这
由于我们是要 java 和 flex结合,所
以在server选择上我们选择 J2EE
存放java类的源文件,我们的目的
就是Flex和 java在一个project里,所
以我们这里选择上
个项目仅仅写 Flex 代码,但最后要把 Java 编译后的 class 文件放到这个项目下的
webroot/web-inf/classes 文件夹中。即无论如何,最后公布时,java 编译后的 class
文件必须和 lcds 部署的项目在一起。
2、 点击Next,配置 J2EEserver,例如以下图
说明:Target runtime 实际上没什么用(后来我删除了配置文件中的相应信息,也
没问题),可是不指定就不能继续,假设这里显示的是<none>那么就新建一个
Tomcat 的runtime,简单的仅仅须要指定tomcat 的安装文件夹就可以。
Content folder 实际上就是终于编译后的容器文件夹,因此,BlazeDS 的 blazeds.war
文件将会公布到 该文件夹 下的 web-inf 下的 flex 文件夹中。同一时候由于教程採用的是
MyEclipse,他默认的就是公布 WebRoot 里的内容,为了自己主动化,因此这里改为了
WebRoot(这也是 java 开发的习惯)
Flex WAR file 指的是安装了 lcds 后的 flex.war 文件的路径,可是在这里我们採用
的是BlazeDS来代替 lcds,所以这里设置的是 blazeds.war的路径。
Compilation options 指定了 flex 文件的编译方式,选择推荐的在 FlexBuilder 里编
译吧,尽管开发时多耗点时间,可是在公布后不会占用server的编译处理时间,对
用户来说是有优点的。
Output folder 指的是 Flex 编译后的 swf 和 html 等文件存放的路径,这里改为了
WebRoot,意思是公布到根文件夹就能够了。当然你能够依据你的须要和习惯自行设
置其它的路径
由于我们採用的 BlazeDS,所
以这里要设置 BlazeDS 的路
径
这里我们能够自己定义输出路径,
普通情况下设置成根文件夹
WebRoot 就能够了
3、 点击下一步,採用默认的配置就能够,点击完毕,该project就建立完毕。下图为该工
程的文件夹结构
4、 让它变成 webproject由MyEclipse公布吧
Flex 文件的
源文件夹
Java 源文件
夹
自己主动生成的
flex 的配置
文件
Flex 编译后公布
的文件。我们发
布在根文件夹下
点击Finish,如今我们的project的图标变成了 J2EE Web project了,这意味着,你能够
注意,不要点的太快了,要把这里的
对号勾掉,这样就不会覆盖 BlazeDS
创建的 web.xml 用MyEclipse来公布它或者加入很多其它容器,比方hibernate、spring等
5、 project建好以后,你能够通过右键—>属性来进行很多其它的设置。
6、 这样一个 Flex+Java的project就建立完毕。
7、 编写样例,測试在介绍完第三种方式以后统一介绍。
第三种:由 Web project反向增加 Flex,也就是Java+Flex
1、 先建立一个 webproject:flexweb。(略)
2、 向flexweb project手工增加 Flex须要的元素。
1)首先将 BlazeDS须要的jar文件拷到project的 lib 文件夹下。能够将上面建的那个 flex
project的 lib下的jar文件拷到该project下的 lib文件夹下。
2)然后要增加 Flex BlazeDS须要的配置文件。在 WEB-INF下新建一个名为 flex 的文
件夹,然后将我们上面建立的那个 firstFlex 该文件夹下的四个 xml 文件拷到该文件
夹下。
3)最后,改动 web.xml 文件,增加 Flex 的配置。做法一个简单的把上面我们新建
的那个 flexproject的web.xml的部分代码拷过来。
(注意:这样会出错,能够把
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
改为:<web-app>)
<context-param>
<param-name>flex.class.path</param-name>
<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-val
ue>
</context-param>
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
3、 将该project公布到tomcat下,并启动 tomcat。(注:一定要启动tomcat,由于在后面
的设置中,它要验证project的路径)
4、 然后在该project上右键?Flex Project Nature?Add Flex Project Nature
5、 设置完毕后,会发现 webproject的文件夹结构已经发生了改变,例如以下图。
我们发现以这样的形式建立的project的文件夹结构和另外一种方法有少许的不同,flex 的
mxml文件默认的放在 src文件夹中,和java文件共用一个文件夹。而且没有像上一个
project那样自己主动的编译出可执行的文件。
配置server路径
配置正确的显示
建议不要改动这里的配置
6、 假设你对这个文件夹结构不太惬意,还想让 flex 的文件放在 flex_src 文件夹下,别急,
我们能够通过右键?属性来设置。例如以下图
在这里你能够又一次设置你的 flex源文件夹和输出文件夹
7、 配置 flex 默认的 sdk。这样配置完,还不行,程序可能还不能正常地执行,还须要
配置他使用的 sdk。例如以下图
8、 立即就大功告成了,让我们来写个程序測试一下吧。
1)新建一个 java类:Hello.java
package com;
public class Hello {
public String hello(String name){
System.out.println("flex调用我了,真好~~~~");
return "hello "+name;
}
}
2)为flex配置这个要调用的对象,改动WEB-INF/flex下remoting-config.xml
增加:
<destination id="hello">
<properties>
<source>
com.Hello
</source>
</properties>
</destination>
3)编写一个Flex程序
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
function gg(evnet:ResultEvent):void{
var ff:String = evnet.result as String;
ggg.text = ff;
}
function remotingSayHello():void{
var sname:String = nameInput.text;
h.hello(sname);
}
]]>
</mx:Script>
<mx:RemoteObject destination="hello" id="h"
result="gg(event)"
endpoint="http://localhost:8080/flexweb/messagebroker/amf" >
</mx:RemoteObject>
<mx:TextArea id="ggg" x="109" y="122"/>
<mx:Button label="say hello" click="remotingSayHello();"
x="144" y="193"/>
<mx:TextInput id="nameInput" x="109" y="73"/>
<mx:Label text="name" x="47" y="75"/>
</mx:Application>
4)重新启动tomcat,执行flexweb.mxml.
第三种方法,在编译完后,訪问网页会出现 404 异常。详细原因不详。可是它仍会编译出
一个 swf文件,訪问这个 swf 就可以。而另外一种方式能够编译出一个 html 文件。訪问一下会出
现一下界面:
输入 dfdff,则输出 hello dfdff。说明调用 java 类成功。不信我们能够看看 java
类在控制台上的打印。
配置成功,高兴吧,o(∩_∩)o…哈哈。
假设用 lcds,则不须要预编译,能够直接訪问 mxml 文件,lcds 会动态编译返回结果。
解决:
倒数第11行的404 异常,我对照另外一种和第三种发现第三种漏了
这个目录,所以解决的方法:把漏的目录整个从另外一种拷一份到项目中、刷新,一定要刷新到到出现
这个目录有这些内容,才干够成功。
java整合flex的更多相关文章
- 【Adobe Air程序开发】eclipse安装flash builder 4.7插件以及java、flex整合开发
看了看网上不少文章,发现很多内容都是很老的,没法用.故把自己的安装过程记录下来,方便以后使用 1.在这里,eclipse使用最新版eclipse juno 3.7 2.在adobe官网https:// ...
- spring整合flex
在常规的开发中只是用flex二不和后台交互是不可能的,为此flex也提供了和后台交互的2种解决方案一种是Data Services另一种是BlazeDs,本篇博客是用的是后一种,我的开发步骤如下: 1 ...
- FastDFS搭建及java整合代码【转】
FastDFS软件介绍 1.什么是FastDFS FastDFS是用C语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高 ...
- mongodb与java整合
mongodb与java整合需要用到mongodb驱动,如果是maven环境,则添加如下倚赖: <dependency> <groupId>org.mongodb</gr ...
- PHP和JAVA整合开发的三个方案(六)
php作为前端开发,java负责后台开发,这样取长补短的方案很适合现在web开发.现在PHP和JAVA整合开发比较好的方案只有3个:1.SOAP2.php-java-bridge3.Quercus Q ...
- ETL工具Kettle使用以及与Java整合实现数据清洗
本文主要讲述kettle的使用和与Java整合,具体下载与安装请自行百度! kettle有两种脚本方式:转换和工作,工作中可以添加转换.以下以转换为例. 1.新建一个转换, 2.在工作中经常用到的是表 ...
- Java整合极光推送 ( 简单 )
Java 整合极光推送官方文档:https://github.com/jpush/jpush-api-java-client 这里记录一下简单的使用步骤:创建一个普通的 Maven 工程然后添加依赖 ...
- JAVA整合Redis使用redisTemplate清除库中的所有键值对数据
JAVA整合Redis使用redisTemplate清除库中的所有键值对数据,清除所有缓存数据 Set<String> keys = redisTemplate.keys("*& ...
- Spring 整合 Flex (BlazeDS)无法从as对象 到 Java对象转换的异常:org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.Date' to required type 'java.sql.Timestamp' for property 'wfsj'; nested exception is java.lang.Ill
异常信息如下: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value ...
随机推荐
- J2EE SSH学习(二)安装Eclipse插件和第一个Eclipse项目
(一)安装Eclipse插件 Eclipse有很多功能很强大的插件,我现在作为一个菜鸟只知道插件的功能通常都很牛叉实用或者很有趣,那么该怎么安装Eclipse插件呢? 我使用的是Eclipse 4.3 ...
- php与文件操作
一.目录操作 首先是从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: <?php $base_dir="fil ...
- Delphi的TService的輸入桌面切換(服务程序)(windows登录界面如何截图)(使用了OpenDesktop和GetThreadDesktop等API)
dfm: object CopyDeskService: TCopyDeskService OldCreateOrder = False OnCreate = ServiceCreate OnD ...
- xvfb 初步探究
有时候我们不关注程序是否有界面(比如自动化测试),只要程序在运行就可以了 很感谢 xvfb 这个工具给我们提供了相关的功能 比如在没有 X server 的机器上运行 gedit, 可以用下面的命令 ...
- Android - 隐藏最顶端的通知条(Top Notification Bar)
隐藏最顶端的通知条(Top Notification Bar/ActionBar) 本文地址: http://blog.csdn.net/caroline_wendy Android中, 视频播放等功 ...
- FFT算法的物理意义
FFT是离散傅立叶变换的高速算法,能够将一个信号变换到频域.有些信号在时域上是非常难看出什么特征的,可是如果变换到频域之后,就非常easy看出特征了.这就是非常多信号分析採用FFT变换的原因.另外,F ...
- 3TB硬盘的容量已经超出了传统分区标准的支持
为什么3TB会有接近750G空间不能用? MBR分区格式是瓶颈 其实3TB硬盘之所以会出现各种问题,关键就在于它的容量已经超出了传统分区标准的支持.传统的硬盘采用MBR分区格式,使用LBA寻址,这种寻 ...
- 使用Delphi声明C++带函数的结构体实战 good
在小组开发中,应用程序部分采用Delphi7,一些组件使用C++做.在今天将一个动态库的C++接口声明头文件转换为D7的Unit单元时,一切都很顺利,直到遇到下面这样一个另类的东西: typedef ...
- 与众不同 windows phone (27) - Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏
原文:与众不同 windows phone (27) - Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏 [索引页][源码下载] 与众不同 wind ...
- windows程序员进阶系列:《软件调试》之Win32堆
win32堆及内部结构 Windows在创建一个新的进程时会为该进程创建第一个堆,被称为进程的默认堆.默认堆的句柄会被保存在进程环境块_PEB的ProcessHeap字段中. 要获得_PEB的地址, ...