Flex与Java整合demo参考.docx
《Flex与Java整合demo参考.docx》由会员分享,可在线阅读,更多相关《Flex与Java整合demo参考.docx(15页珍藏版)》请在冰豆网上搜索。
Flex与Java整合demo参考
整合Flex和Java—配置篇
前言:
在最后的例子一定要看代码,不要直接拷贝过去这个我word文件我也是借鉴网络上的,只是照着其中写的做了一遍,虽然不知道作者是谁,但是很感谢他。
下面我总结一下看这个文档需要注意的地方。
1.如果你要想拷贝作者的代码,你的工程名一定要和作者的一样。
2.如果出现沙箱安全问题
请在tomcat6.0\webapps\Root(注我用的是tomcat6.0,)这个目录下缺少crossdomain.xml文件(名字不要改)。
其中完整内容如下:
xmlversion="1.0"?
>
DOCTYPEcross-domain-policySYSTEM"
3.blazeds.war、ds-console.war、samples.war这三个war包没有的同学请联系我(776448466),据说官网有下。
4.我还安装了一个flashplayer_9_ax_debug.exe调试用的
部分参考来源:
标签:
电脑flexnamejavamxit
在分享这几种配置之前,先简单的介绍一下需要用到的一些资源。
1、MyEclipse+Flex插件(官网下载)
2、Tomcat6.0作为服务器(官网下载)
3、用BlazeDS(免费)代替LCDS(收费):
没钱啊,只能先使用免费的了。
从Adobe
官方网站上下载下来,将blazeds.war、ds-console.war、samples.war三个文件放在
tomcat的webapps目录下。
Flex+Java配置:
第一种:
Java工程和Flex工程独立,这种方式也是很多人使用的方式,Flex程序员和Java
程序员相互独立的工作,这种方式网上有很多的资料,在这里就不再赘述了。
第二种:
Flex工程加入Java元素
1、切换到Flex视图,新建Flexproject,如下图
说明:
Javasourcefolder就是你自己java业务源码存放的根目录,在FB3里,LCDS
项目旨在将JavaJ2ee项目和FlexLcds项目混合。
当然如果你不选择combined两个在一起,那么就麻烦些:
要么你再单独新建一个
Flex项目,而这个项目只写java代码。
要么再建一个J2ee工程写java代码,而这
因为我们是要java和flex结合,所
以在服务器选择上我们选择J2EE
存放java类的源文件,我们的目的
就是Flex和java在一个工程里,所
以我们这里选择上
个项目只写Flex代码,但最后要把Java编译后的class文件放到这个项目下的
webroot\web-inf\classes目录中。
即不管怎样,最后发布时,java编译后的class
文件必须和lcds部署的项目在一起。
2、点击Next,配置J2EE服务器,如下图
说明:
Targetruntime实际上没什么用(后来我删除了配置文件里的对应信息,也
没问题),但是不指定就不能继续,如果这里显示的是那么就新建一个
Tomcat的runtime,简单的只需要指定tomcat的安装目录即可。
Contentfolder实际上就是最终编译后的容器目录,因此,BlazeDS的blazeds.war
文件将会发布到该目录下的web-inf下的flex目录中。
同时因为教程采用的是
MyEclipse,他默认的就是发布WebRoot里的内容,为了自动化,因此这里改为了
WebRoot(这也是java开发的习惯)
FlexWARfile指的是安装了lcds后的flex.war文件的路径,但是在这里我们采用
的是BlazeDS来取代lcds,所以这里设置的是blazeds.war的路径。
Compilationoptions指定了flex文件的编译方式,选择推荐的在FlexBuilder里编
译吧,虽然开发时多耗点时间,但是在发布后不会占用服务器的编译处理时间,对
用户来说是有好处的。
Outputfolder指的是Flex编译后的swf和html等文件存放的路径,这里改为了
WebRoot,意思是发布到根目录就可以了。
当然你可以根据你的需要和习惯自行设
置其他的路径
因为我们采用的BlazeDS,所
以这里要设置BlazeDS的路
径
这里我们可以自定义输出路径,
一般情况下设置成根目录
WebRoot就可以了
3、点击下一步,采用默认的配置就可以,点击完成,该工程就建立完成。
下图为该工
程的目录结构
4、让它变成web工程由MyEclipse发布吧
Flex文件的
源文件夹
Java源文件
夹
自动生成的
flex的配置
文件
Flex编译后发布
的文件。
我们发
布在根目录下
点击Finish,现在我们的工程的图标变成了J2EEWeb工程了,这意味着,你可以
注意,不要点的太快了,要把这里的
对号勾掉,这样就不会覆盖BlazeDS
创建的web.xml用MyEclipse来发布它或者添加更多容器,比如hibernate、spring等
5、工程建好以后,你可以通过右键—>属性来进行更多的设置。
6、这样一个Flex+Java的工程就建立完成。
7、编写例子,测试在介绍完第三种方式以后统一介绍。
第三种:
由Webproject反向加入Flex,也就是Java+Flex
1、先建立一个web工程:
flexweb。
(略)
2、向flexweb工程手工添加Flex需要的元素。
1)首先将BlazeDS需要的jar文件拷到工程的lib目录下。
可以将上面建的那个flex
工程的lib下的jar文件拷到该工程下的lib目录下。
2)然后要加入FlexBlazeDS需要的配置文件。
在WEB-INF下新建一个名为flex的文
件夹,然后将我们上面建立的那个firstFlex该文件夹下的四个xml文件拷到该文件
夹下。
3)最后,修改web.xml文件,加入Flex的配置。
做法一个简单的把上面我们新建
的那个flex工程的web.xml的部分代码拷过来。
(注意:
这样会出错,可以把
xmlns="
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
改为:
)
flex.class.path
/WEB-INF/flex/hotfixes,/WEB-INF/flex/jarsue>
--HttpFlexSessionattributeandbindinglistenersupport-->
flex.messaging.HttpFlexSession
--MessageBrokerServlet-->
MessageBrokerServlet
MessageBrokerServlet
flex.messaging.MessageBrokerServlet
services.configuration.file
/WEB-INF/flex/services-config.xml
1
MessageBrokerServlet
/messagebroker/*
3、将该工程发布到tomcat下,并启动tomcat。
(注:
一定要启动tomcat,因为在后面
的设置中,它要验证工程的路径)
4、然后在该工程上右键FlexProjectNatureAddFlexProjectNature
5、设置完成后,会发现web工程的目录结构已经发生了改变,如下图。
我们发现以这种形式建立的工程的目录结构和第二种方法有少许的不同,flex的
mxml文件默认的放在src文件夹中,和java文件共用一个目录。
并且没有像上一个
工程那样自动的编译出可运行的文件。
配置服务器路径
配置正确的显示
建议不要修改这里的配置
6、如果你对这个目录结构不太满意,还想让flex的文件放在flex_src目录下,别急,
我们可以通过右键属性来设置。
如下图
在这里你可以重新设置你的flex源文件夹和输出目录
7、配置flex默认的sdk。
这样配置完,还不行,程序可能还不能正常地运行,还需要
配置他使用的sdk。
如下图
8、马上就大功告成了,让我们来写个程序测试一下吧。
1)新建一个java类:
Hello.java
packagecom;
publicclassHello{
publicStringhello(Stringname){
System.out.println("flex调用我了,真好~~~~");
return"hello"+name;
}
}
2)为flex配置这个要调用的对象,修改WEB-INF/flex下remoting-config.xml
加入:
com.Hello
3)编写一个Flex程序
xmlversion="1.0"encoding="utf-8"?
>
Applicationxmlns:
mx="
layout="absolute">
Script>
[CDATA[
importmx.rpc.events.ResultEvent;
functiongg(evnet:
ResultEvent):
void{
varff:
String=evnet.resultasString;
ggg.text=ff;
}
functionremotingSayHello():
void{
varsname:
String=nameInput.text;
h.hello(sname);
}
]]>
Script>
RemoteObjectdestination="hello"id="h"
result="gg(event)"
endpoint="http:
//localhost:
8080/flexweb/messagebroker/amf">
--这个链接需要注意把flexweb改成自己的工程名,有时候不注意的话就会出404-->
RemoteObject>
TextAreaid="ggg"x="109"y="122"/>
Buttonlabel="sayhello"click="remotingSayHello();"
x="144"y="193"/>
TextInputid="nameInput"x="109"y="73"/>
Labeltext="name"x="47"y="75"/>
Application>
4)重启tomcat,运行flexweb.mxml.
第三种方法,在编译完后,访问网页会出现404异常。
具体原因不详。
但是它仍会编译出
一个swf文件,访问这个swf即可。
而第二种方式可以编译出一个html文件。
访问一下会出
现一下界面:
输入dfdff,则输出hellodfdff。
说明调用java类成功。
不信我们可以看看java
类在控制台上的打印。
配置成功,高兴吧,o(∩_∩)o…哈哈。
如果用lcds,则不需要预编译,可以直接访问mxml文件,lcds会动态编译返回结果。
转载自:
解决:
倒数第11行的404异常,我对比第二种和第三种发现第三种漏了
这个文件夹,所以解决办法:
把漏的文件夹整个从第二种拷一份到项目中、刷新,一定要刷新到到出现
这个文件夹有这些内容,才可以成功。