• 【转】Java+Eclipse+MyEclipse+Flex+BlazeDS+tomcat的安装和Hello, World项目


    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开发环境的安装,以及创建BlazeDSr的 Hello, world! 项目的过程。

    一、相关软件
    1、安装 Java JDK 5.0 以上版本;
    这是必备的。
    2、安装 Eclipse 3.2 以上版本;
    这也是必备的。
    3、安装 MyEclipse 6.0 以上版本;
    它用于开发 J2EE 项目,可编写 Java 程序,编写网页等。
    4、安装 Flex Builder 3 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,使整个文件内容如下:

    ? XML<?xmlversion="1.0"encoding="utf-8"?>
    <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute">
    <mx:Labelx="228"y="95"text="Hello, World!"/>
     
    </mx:Application>

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

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

    ? JAVApackageorg.ngweb.flex;
     
    publicclass Hello {
    publicString sayHello(){
    return"Hello, world!";
    }
    publicString sayHello(String s){
    return"Hello, "+s+"!";
    }
    }

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

    ? XML<?xmlversion="1.0"encoding="UTF-8"?>
    <serviceid="remoting-service"
    class="flex.messaging.services.RemotingService">
     
    <adapters>
    <adapter-definitionid="java-object"
    class="flex.messaging.services.remoting.adapters.JavaAdapter"
    default="true"/>
    </adapters>
     
    <default-channels>
    <channelref="my-amf"/>
    </default-channels>
     
    <!-- 新增的是下面六行,其它没有改变 -->
    <destinationid="helloWorld">
    <properties>
    <!-- 这里要写完整路径:包名 + 类名 -->
    <source>org.ngweb.flex.Hello</source>
    </properties>
    </destination>
    </service>

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

    ? XML<?xmlversion="1.0"encoding="utf-8"?>
    <mx:Applicationxmlns: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:RemoteObjectid="remoteObject"
    destination="helloWorld"
    result="resultHandler(event)"
    fault="faultHandler(event)"/>
     
    <mx:Buttonlabel="发送消息"click="remoteObject.sayHello('huang')"x="256.5"y="197"/>
     
    </mx:Application>
  • 相关阅读:
    C#小常识集锦(一)《更锋利的CSharp代码》读书笔记
    QueryBuilder 优雅的Linq To SQL动态查询(转)
    了解 NoSQL 的必读资料
    微软报表
    linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)
    LINQ体验(17)——LINQ to SQL语句之动态查询
    细数那些运行在微软平台上的NoSQL数据库
    5道经典的程序题
    打造自己的LINQ Provider(中):IQueryable和IQueryProvider (转 李会军)
    Expression Examples :Report Builder
  • 原文地址:https://www.cnblogs.com/xinzhuangzi/p/4100404.html
Copyright © 2020-2023  润新知