用Flash Builder 4 beta建立连接BlazeDS远程端的Flex应用程序
配置服务器环境
第一步,创建被Flex应用程序调用的Java类。本篇文章的应用程序使用了SimpleCustomerService类,这个类的方法被命名为getAllCustomers(),将在Flex应用程序中被调用:
public class SimpleCustomerService
{
public ArrayList<SimpleCustomer> getAllCustomers()
{
ArrayList<SimpleCustomer> customers = null;
//code to create ArrayList containing SimpleCustomer objects
return customers;
}
}
通过编译<SampleZipFile>/java_src 文件夹中的SimpleCustomerService.java和SimpleCustomer.java开始(或者你可以在<SampleZipFile>/java_classes 文件夹中提前编译类文件)。
用类文件创建Web应用,步骤如下:
1. 如果没有安装Tomcat,现在就请安装Tomcat,到 http://tomcat.apache.org/* 寻找下载信息和更多的细节。
2. 在Tomcat安装目录下找到webapps,在Windows操作系统中默认路径是:C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps。
3. 在webapps文件夹下新建文件夹,命名为samplewebapp,用来创建新的Web应用。
4. 拷贝Java类文件SimpleCustomerService.class和SimpleCustomer.class 到webapps/samplewebapp/WEB-INF/classes 下面。
安装BlazeDS
在你从Flex应用程序调用Java类之前,你必须用BlazeDS显示类作为远程服务终端。要为你的Web应用程序配置BlazeDS,你必须在Web应用源路径中部署BlazeDS JAR文件。安装BlazeDS步骤如下:
1. 下载最新 nightly build of BlazeDS*二进制发布版本,它包含你需要的JAR文件和其他配置文件。如果你使用早期的BlazeDS或者LiveCycle Data Services ES版本,那么你需要执行除上述之外的步骤,在 我的博客* 中有关于这个话题的详述。
2. 解压你下载的zip文件,在文件夹中有blazeds.war,它包含配置BlazeDS 所需要的Jar文件和其他配置文件,blazeds-bin-readme.htm包含合同、条件和证书等细节。
3. 提取blazeds.war的内容到单独命名为blazeds的文件夹中(你可以用WinZip或者类似的工具解压WAR文件中的内容)。
4. 从blazeds/WEB-INF/lib中拷贝所有的JAR文件到samplewebapp/WEB-INF/lib。
5. 拷贝blazeds/WEB-INF/flex文件夹到samplewebapp/WEB-INF
这个文件夹包含BlazeDS配置文件。这个配置文件被用来配置远程、消息和代理服务。
6. 如果没有你想用的web.xml文件,拷贝blazeds/WEB-INF/web.xml到samplewebapp/WEB-INF。
下面,你需要为BlazeDS Servlet添加 Servlet mapping命名为:MessageBrokerServlet,以便于当你用任一渠道支持向远程、消息或者代理服务发送请求时调用BlazeDS。
如果你正在使用你自己的web.xml文件,那么就需要添加以下代码,或者你可以从blazeds/WEB-INF/web.xml拷贝这段代码。
<!-- Http Flex Session attribute and binding listener support -->
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
Flash Builder 4用RDSDispatchServlet(绑定BlazeDS和LiveCycle Data Services ES2)来获得在Web应用中的服务端细节。如果你正在使用你自己的web.xml文件,那么就需要在你的Web应用中为 RDSDisptachServlet添加Servlet mapping,通过拷贝下面的XML片段到<web-app>节点下的samplewebapp/WEB-INF/web.xml文件中。
<servlet>
<servlet-name>RDSDispatchServlet</servlet-name>
<display-name>RDSDispatchServlet</display-name>
<servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
<param-name>useAppserverSecurity</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping id="RDS_DISPATCH_MAPPING">