`
FlexEye
  • 浏览: 17529 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flex + BlazeDS+ Java 入门教程

阅读更多

  目的:Flex 与 Java 通过  RemoteObject 进行交互

 

  开发环境:

MyEclipse 6.0 集成 Flex Builder 3.0

 

  BlazeDS:

下载BlazeDS,将blazeds.war文件放在tomcat的webapps目录下。

 

  Flex+Java 配置:

  1、切换到Flex视图,新建Flex project,如下图



 

说明:Java source folder就是你自己java业务源码存放的根目录,当然如果你不选择 combined 两个在一起,那么就麻烦些:要么你再单独新建一个Flex项目,而这个项目只写java代码。要么再建一个J2ee工程写java代码,而这因为我们是要java和flex结合,所以在服务器选择上我们选择J2EE存放java类的源文件,我们的目的就是Flex和java在一个工程里,所以我们这里选择上个项目只写Flex代码,但最后要把Java编译后的class文件放到这个项目下的webroot\web-inf\classes目录中。即不管怎样,最后发布时,java编译后的class文件必须和BlazeDS部署的项目在一起。

 

  2、点击Next,配置J2EE服务器,如下图



 说明: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里编译吧,虽然开发时多耗点时间,但是在发布后不会占用服务器的编译处理时间,对用户来说是有好处的。


Output folder 指的是Flex编译后的swf和html等文件存放的路径,这里改为WebRoot,意思是发布到根目录就可以了。当然你可以根据你的需要和习惯自行设置其他的路径

 

  3、点击下一步,采用默认的配置就可以,点击完成,该工程就建立完成。

      下图为该工程的目录结构图     



 

  4、 让它变成web工程由MyEclipse发布吧



 
 

 

点击Finish,现在我们的工程的图标变成了J2EE Web 工程了,这意味着,你可以
用MyEclipse来发布它或者添加更多容器,比如hibernate、spring等

 

  5、 工程建好以后,你可以通过右键—>属性来进行更多的设置。



 



 

注意:一定要把Context root 路径/WebRoot  ,改成/firstFlex (也就是你发布的工程名)

 

  6、 这样一个Flex+Java的工程就建立完成,下面就编写例子测试。

 

  代码:

  1)新建一个java类:Hello.java

package com.company.blazeds;

public class Hello {
	
	public String sayHello(String name){
		System.out.println("Flex 调用我了 , Very Good!");
		return "Hello " + name + " !";		
	}
}

  2)为flex配置这个要调用的对象,修改WEB-INF/flex下remoting-config.xml,

  添加下面代码:

<destination id="sayhello"> 
        <properties> 
                <source> com.company.blazeds.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;
			import mx.controls.Alert;

			private function resultHandler(evnet:ResultEvent):void
			{
				var result:String=evnet.result as String;
				Alert.show(result);
			}

			private function remotingSayHello():void
			{
				var name:String=nameInput.text;
				rid.sayHello(name);
			}
		]]>
	</mx:Script>
	<mx:RemoteObject destination="sayhello"
					 id="rid"
					 result="resultHandler(event)">
	</mx:RemoteObject>
	
	<mx:Button label="say hello"
			   click="remotingSayHello();"
			   x="241"
			   y="73"/>
	<mx:TextInput id="nameInput"
				  x="109"
				  y="73" width="95"/>
	<mx:Label text="name"
			  x="47"
			  y="75"/>
</mx:Application>

 
 4)发布到tomcat中,启动tomcat,运行firstFlex.mxml,OK!

 

    附件:blazeds.rar

               firstFlex.rar(工程源码)

  • 大小: 69 KB
  • 大小: 82.6 KB
  • 大小: 72.2 KB
  • 大小: 56.2 KB
  • 大小: 97.5 KB
  • 大小: 53.2 KB
  • 大小: 71.1 KB
0
0
分享到:
评论
2 楼 javaEEdevelop 2011-03-29  
成功了,还是自己太粗心了,谢了
1 楼 javaEEdevelop 2011-03-29  
为啥我的就试不成功啊,我不知道什么原因了

相关推荐

Global site tag (gtag.js) - Google Analytics