本文和大家重点讨论一下Flex与java集成开发,主要包括开发环境,项目流程和调试等内容,相信通过本文的学习你对Flex与java集成开发的概念一定会有深刻的认识。
Flex与java集成开发
一、开发环境:
Eclipse3.3+myeclipse6+FB3_WWEJ_Plugin(eclipse的Flex插件)+lcds(LiveCycleDataService)+tomcat6
二、Flex与java集成开发项目流程:
1、新建FlexLCDS工程
a、弹出CreateaFlexProject窗口:
Projectname:输入test。
Projectlocation:默认配置。
ServerTechnology:SeverApplicationType选择j2ee,选中Useremoteobjectaccessservice,并选择LiveCycleDataServices。注意选中CreatecombinedJava/FlexprojectusingWTP,把我们的JAVA项目和Flex整合一起开发。
b、ConfigureJ2EEServer窗口:
需要注意的是Outputfolder需要设置为WebRoot,以便我们可以利用MYECLIPSE的自动发布功能,省去了不少事情。
J2EEsetting下的targetruntime我们可以新建个tomcat应用。
其他的默认配置。
c、窗口CreateaFlexProject可以默认配置
说明:Mainsourcefolder是Flex的源码存放根目录,
OutputfolderURL是在开发过程中运行和调试的请求路径,这个与发布无关,不会影响任何你在程序中使用的路径,但是能使开发方便
注意:FlexBuilder3这里存在bug,新建工程时,部分自定义的属性并没有保存下来,而必须在新建后的项目属性中更改。
2、用MyEclipse添加Web容器
项目中点击右键选中MYECLIPSE下的AddWebProjectcapabilities,弹出的窗口中,记住不要勾选Createweb.xml。这样你就可以在MYECLIPSE中发布。
3、项目属性配置
点击test项目的Properties,需要完成下面几个配置。
FlexServer配置:
RootUrl属性:http://localhost:8080/test改为:http://localhost:8080
ContextRoot属性:/WebRoot改为/test。
设置完成后别忘了ValicateLocation检测下。
说明:
Rooturl当然就是你的web服务器的根路径了,Tomcat默认是8080端口,如果改了就自己修改
Contextroot就是LCDS工程的名称(注意:如果你分开为两个工程,则这里指的是你J2ee项目的名称,而不是你Flex项目的名称,因为你在请求Java的数据服务),在Flex请求LCDS时,会采用这个作为参数http://{server.name}:{server.port}/{context.root}/messagebroker/amf
如果Contextroot错了,那么永远不可能正确的请求LCDS的服务了。
三、Flex与java集成开发发布调试
1、要在MYECLIPSE下部署Test项目。
2、在项目中找到test.mxml,点右键,"Runas"--"FlexApplication"。如果看到了http://localhost:8080/test/test.html页面则部署成功。
我们也可以调试程序。选择"Debugas"--"FlexApplication"http://localhost:8080/test/test.html?debug=true
注意:
1、如果出现:Exceptioninthread"RTMP-Server"Flex.messaging.endpoints.rtmp.RTMPException:
TheRTMPserverhasencounteredafatalexceptionstartingup:Addressalreadyinuse:bind。
需要在/test/WebRoot/WEB-INF/Flex/services-config.xml下面去掉
- <channel-definitionidchannel-definitionid="my-rtmp"class="mx.messaging.channels.RTMPChannel">
- <endpointurlendpointurl="rtmp://{server.name}:2038"
- class="Flex.messaging.endpoints.RTMPEndpoint"/>
- <properties>
- <idle-timeout-minutes>20</idle-timeout-minutes>
- <!--fordeploymentonWebSphere,mustbemappedtoaWorkManageravailableinthe
- webapplication'sjndicontext.
- <websphere-workmanager-jndi-name>java:comp/env/wm/MessagingWorkManager</websphere-
- workmanager-jndi-name>
- -->
- </properties>
- </channel-definition>
2、如果有出现下面错误:如果出现:org.apache.catalina.util.DefaultAnnotationProcessorcannotbecasttoorg.apache.AnnotationProces
可以在JAVABuildPathLibralies下的tomcat6lib去掉。
3、注意你要下载最新版本的flashplayerdebug版本。否则会出现:
Failedtoconnect;sessiontimedout.Ensurethat:
1.YoucompiledyourFlashapplicationwithdebuggingon.
2.YouarerunningthedebuggerversionofFlashPlayer.
【编辑推荐】
- 解析Flexbuilder4十大新特性
- 从Flex Builder更名看Flash平台战略
- Flex及FlexBuilder2.0开发环境详解
- FlexBuilder3.0与Eclipse3.4的完美结合
- 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件