(综合其他帖和自己的修改)
我们要实现的目的:我们要实现的目的:
1.希望在myeclipse里面可以创建flex项目。
2.在flex中编辑的mxml文件,保存后能够自动的生成flash文件和html文件以供测试,当然正式发布的时候很多的HTML是要删除的。
3.利用myeclipse在工程中实时同步机制,把我们编译后的flash和html文件直接同步到web工程,然后工程自动部署到tomcat,这样测试就很方便了,因为同步flash和html文件到tomcat根本就不用重新启动。
注意我们的关键点本质上只是把flex项目的编译输出直接到web工程。
1.希望在myeclipse里面可以创建flex项目。
2.在flex中编辑的mxml文件,保存后能够自动的生成flash文件和html文件以供测试,当然正式发布的时候很多的HTML是要删除的。
3.利用myeclipse在工程中实时同步机制,把我们编译后的flash和html文件直接同步到web工程,然后工程自动部署到tomcat,这样测试就很方便了,因为同步flash和html文件到tomcat根本就不用重新启动。
注意我们的关键点本质上只是把flex项目的编译输出直接到web工程。总结,共有一下几种方法:
1,flex项目和web项目在同一项目。
2,flex项目和web项目为两个项目,进行交互。
个人认为,第二种比较好,这样可以完全将flex卡发和web业务开发分开。我这里也介绍第二种方法。
下面介绍我的hello小程序。
首先,开发环境
1,eclipse3.2+myeclipse5.1,不多说
2,eclipse的flex插件:FB3_WWEJ_Plugin.exe
3.Tomcat6.0
4,必须得到blazeds.war,网上很多,可以进行下载下来,演示例子。
1,创建web项目:
我的项目是hello
2,将blazeds.war解压缩(直接用winrar或者通过放入tomcat中启动由tomcat帮忙解压缩),将blazeds.war项目中的,Web-Inf复制,替换hello项目(用刚才复制的将此项目(hello)中的替换)。 也可以不替换,而是将相应的文件拷到原来的项目的win-info下面,注意不要漏了jar包和web.xml
4,在web项目中建立java类
- package com.demo;
- public class HelloWorld {
- public String sayHello(String name) {
- System.out.println(name);
- return"hello," + name;
- }
- }
5,在刚才复制的flex目录下打开remoting-config.xml,写入一下代码
- <destination id="Hello">
- <properties>
- <source>com.demo.HelloWorld</source>
- </properties>
- </destination>
6,发布此项目。
以上是web项目中的内容,下来看看flex项目
1,创建flex项目,flexTest,application type 选择 web application, server technology 选择none,点next,output folder 中选择你上面建立web工程的目录的webRoot(这里就是hello),很多地方都说选择j2ee,这个是建立集成项目时候选择的。
2,写入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.rpc.events.ResultEvent;
- [Bindable]
- private var helloResult:String;
- private function sayHello():void {
- ro.sayHello(inputText.text);
- }
- private function resultHandler(event:ResultEvent):void {
- helloResult = event.result as String;
- }
- ]]>
- </mx:Script >
- <mx:RemoteObject id="ro" destination="Hello" result="resultHandler(event)" endpoint="/Hello/messagebroker/amf"/>
- <mx:HBox x="0" y="10" width="100%">
- <mx:Label text="Name:" id="nameLabel"/>
- <mx:TextInput id="inputText"/>
- <mx:Button label="say Hello" id="nameButton" click="sayHello()"/>
- <mx:Label id="resultLabel" text="{helloResult}"/>
- </mx:HBox>
- </mx:Application>
3,最重要的endpoint="/Hello/messagebroker/amf",这个一定要写对,hello改成你自己的web项目名。
mx:RemoteObject的不足之处是调试不方便。在flex application运行时会提示找不到http/Hello/messagebroker/amf的错误,而整个web发布后运行则没有这个问题。