设为首页 收藏本站
查看: 822|回复: 0

[经验分享] flex4+tomcat+MyEclipse8.5+BlazeDS环境配置

[复制链接]

尚未签到

发表于 2017-1-30 12:08:36 | 显示全部楼层 |阅读模式
BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它提供了 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信的一种手段,并且是一种高效的手段。也就是说它实现了 Java 和 Flex 的无缝集成。

BlazeDS是开源的,Adobe原来有一个商业版本,这是商业版本的开源化的产品,功能比商业版本少一些,但基本满足需要。

Flex与后台服务器上的应用程序通信的手段有三个:
(1) HTTPService: 采用标准的HTTP请求,服务器返回 XML 格式的消息;
(2) WebService: 采用SOAP消息格式进行通信,也是XML格式,它是一种专门用于Web的业界标准;
(3) RemoteObject: 采用 AMF 消息格式进行通信,这是二进制的格式,因此它的效率最高。BlazeDS就是采用这个技术的。

据说 BlazeDS 还将开发适用于 .net 和 PHP 版本,不过采用相同技术(RemoteObject)的各种开源产品也已有多种了,可在 Java, .net, PHP下使用。

本文的目的是详细说明BlazeDS开发环境的配置过程。

一、相关软件
1、安装 Java JDK 5.0 以上版本;
这是必备的。
2、安装 Eclipse 3.2 以上版本;
这也是必备的。
3、安装 MyEclipse 6.0 以上版本;
它用于开发 J2EE 项目,可编写 Java 程序,编写网页等。
4、安装 Flex Builder 4 Plug-in版本(不能用独立版本);
它用于开发 Flex 前端界面。
5、安装 tomcat 6.0 以上版本;
Web服务器,也可用其它的,例如JBoss等。
6、下载 BlazeDS,有二个版本:
一是只有4M大小的版本,这是核心;
二是166M的版本,称为blazeds-turnkey,它内置了tomcat以及文档、实例和支持实例的数据库系统(HSQL),以及flex sdk。
本教程只需BlazeDS的核心,下载后备用。

二、安装过程
1、安装 Java JDK 5.0 或 6.0,注意不是JRE,只要一路 Next 就行;
安装完要作环境变量配置:
JAVA_HOME,为JDK的安装目录,如 C:\Program Files\Java\jdk1.6.0_06
CLASSPATH,值为 .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar,注意最前面的句号,不能漏了;
path,为安装目录下的 bin目录,值为 %JAVA_HOME%\bin

2、安装 Eclipse 3.2,只要解压缩到任意一个目录中;
直接运行其中的 eclipse.exe 文件即可,为提高运行速度,可为其分配更多的内存,即运行时加上下述参数:
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
方法是为 eclipse.exe 建立一个快捷方式,然后在快捷方式的属性中在eclipse.exe后加一空格,再加上上述参数

3、安装 MyEclipse 6.0 以上版本,在安装过程中需要指定 Eclipse 的位置,然后一路 Next即可;
安装后运行MyEclipse或eclipse都同样是打开MyEclipse;

4、安装 Flex Builder 3 Plug-in版本,可以安装在任意的目录中,在安装过程中同样需要指定 Eclipse 的位置,然后一路 Next 即可;
安装后需配置 eclipse:
在上述第2步中的eclipse目录下创建一个目录,名为links,如果已经存在该目录(通常是已有了),则使用原有的;
在links目录下新建一个文件,名为 flex.link(文件名任意,后缀必须是link),内容为path=Flex Builder 3 Plug-in的安装目录,例如:
path=D:\\program\\Adobe\\Flex Builder 3 Plug-in
注意目录的分隔符或者用“\\”,或者用“/”,前者为Windows风格,后者为Linix风格;

5、安装 tomcat 6.0,将文件解压缩到任意目录中。

6、BlazeDS 在创建项目时用;

三、创建Hello, workd项目:
下述步聚将创建名为web的一个集成Java的Flex项目, 需要时还可以添加 hibernate, spring能力。下面的web都是指项目名,可以改为你的项目名。
1、创建一个MyEclipse的Web Project项目;
在MyEclipse中,选择 File -> New,在弹出的菜单中选 Web Project,如果看不到该选项,则选 Others,然后再选:
MyEclipse -> Java Enterprise Projects -> Web Project
在下一步中指定项目的名称,例如web,在这一步中记得将Source folder改为另外的名字,例如javasrc或jsrc,这是为了避免与flex的源文件夹名冲突;
其它保留默认值,完成项目的创建。

2、为项目配置服务器
首先启动 tomcat 服务器:
在tomcat解压缩的目录中的bin下找到 startup.bat 文件,双击运行,这时将打开一个命令行窗口,在整个开发过程中不要关闭这个窗口,否则tomcat就停止了。
配置MyEclipse使用上述的tomcat 服务器;
将项目发布到 tomcat服务器;
上述2个小步聚不会做的,请查一下MyEclipse项目的使用的资料(配置tomcat,发布项目,启动和停止tomcat)。
配置后可以用浏览器测试项目是否能正常运行:
http://127.0.0.1:8080/web/index.jsp

3、将 BlazeDS 解压缩到项目中,步聚如下:
将下载的 BlazeDS.war 文件改后缀名为 zip,然后解压缩到任意的目录中,再将解压缩出来的二个文件夹移动或复制到前一步中创建的项目中。
注意:这两个文件夹是META-INF和WEB-INF,要把它们覆盖上一步创建的项目中的同名目录,仅是目录名相同,文件是不同的。

复制后不要忘记重新发布一下项目,否则下一步不能做。

4、为项目添加Flex Project Nature;
这一步比较重要,必须是在前述所有步聚正确完成后才能进行:
从项目右键菜单中选择 Flex Project Nature -> Add Flex Project Nature (在选择中是第二个选择);
在弹出的窗口中的Application server type 选择 J2EE;
在下一个窗口中设置好合适的参数:
(1)反选 Use default location for local LiveCycle Date Services server
(2)Root folder: 选择项目发布的目录:例如:D:\program\tomcat6\webapps\web
(3)Root URL: 在浏览器中访问项目的网址,例如:http://localhost:8080/web/
(4)Context root: 项目的上下文,一般就是项目名,例如:/web
项目必须是有BlazeDS的相关包,即上一步中复制到项目中,然后再发布到上述设置的目录中。
设置好后,还需要点击 Validation configuration,测试配置是否正确,只有正确时,才能继续进行下去。
这时会出现一个错误提示,当完成下述设置后,错误将得到改正。并且整个项目创建完成。
修改项目的Flex Compile选项:
从项目右键菜单中选择 Properties;
在打开的窗口中选择 Flex Compiler,然后在右边的 User a specific SDK中选 Flex 3.2。

项目创建成功

4、测试Flex 前端;
先测试 Flex 前端,在web.mxml文件中增加一行,添加一个Label,使整个文件内容如下:

?[Copy to clipboard]View Code XML
<?xml version="1.0" encoding="utf-8"?>
      <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
      <mx:Label x="228" y="95" text="Hello, World!"/>                        
      </mx:Application>


按执行按钮,这时应该弹出浏览器窗口,能看到页面的内容 Hello, World!

5、测试与Java的集成:
将项目切换到MyEclipse Java Enterprise 视图
在javasrc中按需要创建包,然后创建一个类:

?[Copy to clipboard]View Code JAVA
package org.ngweb.flex;
                        
   public class Hello {
         public String sayHello(){
           return "Hello, world!";
         }
         public String sayHello(String s){
           return "Hello, "+s+"!";
         }
}


将项目视图切换到 Flex Development 视图:
打开 WebRoot/WEB-INF/flex/remoting-config.xml文件,将其修改成:

?[Copy to clipboard]View Code XML
<?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="helloWorld">
      <properties>
      <!-- 这里要写完整路径:包名 + 类名 -->
      <source>org.ngweb.flex.Hello</source>
      </properties>
      </destination>
      </service>


然后在web.mxml中,添加一段代码(第4步增加的Label可以删除掉),使其成为(可以直接复制使用,有关代码的含义请参见其它资料):

?[Copy to clipboard]View Code XML
<?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 resultHandler(event:ResultEvent):void{  
                  Alert.show(event.result.toString(), "成功");  
             }
             private function faultHandler(event:FaultEvent):void{  
                  Alert.show(event.fault.toString(), "失败");  
             }  
          ]]>  
       </mx:Script>  
                        
      <!-- destination 属性值要和 remoting-config.xml 中 destination 的 id 一致-->  
      <mx:RemoteObject id="remoteObject" destination="helloWorld" result="resultHandler(event)" fault="faultHandler(event)"/>
      <mx:Button label="发送消息" click="remoteObject.sayHello('huang')" x="256.5" y="197"/>  
      </mx:Application>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-335315-1-1.html 上篇帖子: Tomcat下使用Jfreechart 简单例子(servlet) 下篇帖子: Tomcat 配置设置https访问(单向验证)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表