准备:
JDK:sun jdk 1.6
开发工具:eclipse+flex builder
flex sdk版本: 3.2
应用服务器: tomcat 6.0
blazed:blazeds-turnkey-3.2.0.3978 下载地址是:http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-turnkey-3.2.0.3978.zip
新建项目:
等全部环境安装好后,打开装了flex builder(flex 4.0以后叫flash builder了),选择Flex Development 视图,新建项目选择Flex Project ,填写新建项目的名称,项目存储的目录,在Server Technology标签中的application Server Type选择J2EE,选中Use remote object access service和Create combined Java/Flex project using WTP(这个一定要记的选上)选项,然后Next.如下图:

在第二页中J2EE settings,Target runtime如果还没有可以先添加一个预先准备后的tomcat环境。然后选择它。在Compiled Flex application location的Out Folder改成与上面Content Folder相同的WebContent,注意这个一定要改,否则无法自动编译过去,调试时浏览器无法访问。如下图:

新建好项目后,还要修改一个关键的项目属性。将Flex Server标签中的Context Root修改为FirstJavaFlex(这一块很重要,在没有配置RemoteObject 的endPoint属性的时候,会用这个Context去编译Flex),
如果写了endpoint那就不用修改这个参数。
还要注意一下Root URL参数中的端口号,因为默认是8080,可是如果你用的是blazeds-turnkey包中的tomcat的时候,那个端口号是8400记着一定也要改一下。如下图:

就这样新建好项目之后,java源文件放在src目录下,flex源文件放在flex_src目录下。
然后选择你的flex工程文件,点右键,在弹出的“myeclipse”中选择“add web application”,然后你就可以将这个FLEX工程作为一个JAVA WEB工程发布到TOMCAT上去了。
接下来就是写代码了。新建好项目之后会在flex_src下生成一个FirstJavaFlex.mxml的文件。
我的java类的代码如下:
view plaincopy to clipboardprint?
package com.java.flex;
public class FirstJavaFlex {
public String helloJavaFlex(String name) {
System.err.println("call java success!");
return "welcome to JavaFlex world: "+name;
}
}
package com.java.flex;
public class FirstJavaFlex {
public String helloJavaFlex(String name) {
System.err.println("call java success!");
return "welcome to JavaFlex world: "+name;
}
}
这个代码也很简单吧不多说了。
下面是最关键的一步打开WEB-INF\flex目录中的remoting-config.xml文件在里面
添加一段远程目录的注册,
<destination id="firstJavaFlex">
<properties>
<source>com.java.flex.FirstJavaFlex</source>
</properties>
</destination>
添加完后的remoting-config.xml文件如下:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="firstJavaFlex">
<properties>
<source>com.java.flex.FirstJavaFlex</source>
</properties>
</destination>
</service>
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object"
class="flex.messaging.services.remoting.adapters.JavaAdapter"
default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="firstJavaFlex">
<properties>
<source>com.java.flex.FirstJavaFlex</source>
</properties>
</destination>
</service>
接下来修改FirstJavaFlex.mxml,代码如下:
<?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.FaultEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
private function resultHandle(event:ResultEvent):void{
// var result:String = event.result as String;
mx.controls. Alert.show(event.result.toString(), "提示");
}
private function faultHandle(event:FaultEvent):void{
mx.controls.Alert.show(event.fault.toString());
}
]]>
</mx:Script>
<mx:RemoteObject id="remoteService" destination="firstJavaFlex" source="com.flex.HelloJava" result="resultHandle(event)" fault="faultHandle(event)" endpoint="http://localhost:8080/FirstJavaFlex/messagebroker/amf"/>
<mx:Button id="jbt" label="发送" click="remoteService.sayHello('天使')"/>
</mx:Application>
恭喜你成功了!
这个例子很简单,但因为不熟,我也是调了好久才成功。容易出错的地址就好个Context的问题了。当然也可以在RemoteObject中明确声明EndPoint属性,建议使用相对路径。
分享到:
相关推荐
本话题主要关注如何通过MyEclipse这个流行的Java集成开发环境(IDE)整合JAVA与FLEX,使得它们能够有效地进行通讯。这一过程涉及到将Flex工程添加到Java Web工程中,以便在后端服务器和前端富互联网应用程序(RIA)...
2、从键盘输入一个实数,获取该实数的整数部分,并求出实数与整数部分的差,将结果分别用两种形式输出:一种是直接输出,另一种是用精确到小数点后4位的浮点格式输出。 3、用产生随机数的方法产生两个1位整数,求其...
MYsql5.0+MyEclpise6.0+JDBC 数据库要在MYsql中自己建(id,username,password)三个字段 连接用mysql-connector-java-5.0.6.zip
本合辑主要关注的是MyEclipse的序列号问题,这涉及到软件的授权与激活。 序列号是软件开发商为了防止未经授权的复制和使用,对产品进行的一种数字验证方式。每个MyEclipse安装都需要一个有效的序列号来激活,以便...
myeclpise破解JAR包,原JAR工具包,依然可用版本。
这通常涉及到打包项目为EAR或WAR文件,并通过JBoss的管理控制台或命令行工具进行部署。MyEclipse提供了内置的工具来帮助开发者完成这个过程,包括自动构建、部署和启动应用程序。 #### 5. 测试EJB 在部署EJB后,...
基于JAVA的四层架构...本Demo强调的是一种设计思想,其实与经典设计模式中的策略模式有点类似。建议学习软件设计思想时不妨想想硬件的接口设计。Demo在Myeclpise7.0下使用UML建立类图结构,自动反向生成的JAVA代码。
在这个电子商城系统中,Hibernate被用来管理数据库交互,将Java对象与数据库表之间的映射关系自动化,使得开发者可以使用面向对象的方式来处理数据库操作,而无需编写大量的SQL语句。 【jsp技术】:JavaServer ...
把eclipse3.5中文包下载后解压,解压后其中有个eclipse的文件夹,将这个文件夹放到你的eclipse.exe文件所在目录里的dropins文件夹中,然后打开eclipse.ini文件,在最后加上 -nl zh。 此方法同样适应MyEclipse。 把...
而“SVN插件”则意味着这是一个专门为集成Subversion功能而开发的扩展,它能够将SVN的强大功能无缝地融入到myeclipse的开发环境中。 【压缩包子文件的文件名称列表】:“site-1.0.6” 这个文件名“site-1.0.6”...
#### 一、MyEclipse简介与重要性 MyEclipse是一款基于Eclipse平台的增强型集成开发环境(IDE),它为Java开发者提供了丰富的功能,如代码编辑、调试、部署等,并支持多种Web开发技术,如JSP、Servlet、Struts等。...
内含你所需要的文件
开发工具 myeclpise8.5 tomcat 6.0 mysql5.0 这是一个整合struts、spring、hibernate的javaWeb项目,完整实现了一个网上商城的功能!!!
本文将深入介绍"常用eclipse插件 - links & my_plugins"这个压缩包中的三个关键插件:color_theme、fullscreen以及window_builder,并解释如何通过link文件快速安装这些插件,让Eclipse变得更加易用和高效。...
2. **设置工作空间默认编码**:在Java开发中,通常使用UTF-8编码。MyEclipse的默认编码可能与操作系统环境有关,需要在`Window` -> `Preferences`中设置工作空间的默认编码为UTF-8,以确保文件的正确读写。 3. **...
今天使用MyEclipse建立了一个简单的Struts工程:一个登录页面,如果用户名和密码均正确的话,将用户名显示在新页面中,否则返回至登录页面。1)File-->New-->Project新建一个项目2)弹出一个对话框,选择...
运行一下,就可以生成,然后把它填写在相就在相应的地方就OK了