首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

BlazeDS 配备

2012-06-26 
BlazeDS 配置关于服务端的发布很简单,按照官网上介绍的,将blazeds.war下下来后,按照示例建一个blazeds的we

BlazeDS 配置

关于服务端的发布很简单,按照官网上介绍的,将blazeds.war下下来后,按照示例建一个blazeds的web project?

下面是我project目录的截图

BlazeDS 配备

其中可能需要改动的就是remoting-config.xml和web.xml两个文件,其他配置文件默认不需要改动

我的remoting-config.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>svr.HelloWorld</source>        </properties>    </destination>    <destination id="bdserver">        <properties>            <source>svr.BDServer</source>        </properties>    </destination>    </service>

我的web.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>    <display-name>BlazeDS</display-name>    <description>BlazeDS Application</description>    <!-- 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>              <servlet-name>InitServlet</servlet-name>      <servlet-class>servlets.InitServlet</servlet-class>      <load-on-startup>3</load-on-startup>            </servlet>    <!-- RDSDispatchServlet相关配置 默认是注释掉的,如果需要Flash Builder通过data/service服务能连接的话,这边需要去掉注释 -->    <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><!-- 此处默认值是true,通过Flash Builder来生成相关服务时,需改为false,即不同相关用户名、密码来验证 -->    </init-param>            <load-on-startup>10</load-on-startup>    </servlet>        <servlet-mapping id="RDS_DISPATCH_MAPPING">    <servlet-name>RDSDispatchServlet</servlet-name>    <url-pattern>/CFIDE/main/ide.cfm</url-pattern>    </servlet-mapping>    <!-- 以上是RDSDispatchServlet相关配置  -->    <servlet-mapping>        <servlet-name>MessageBrokerServlet</servlet-name>        <url-pattern>/messagebroker/*</url-pattern>    </servlet-mapping>    <welcome-file-list>        <welcome-file>index.html</welcome-file>        <welcome-file>index.htm</welcome-file>    </welcome-file-list>    <!-- 1111 for WebSphere deployment, please uncomment -->    <!--        <resource-ref>        <description>Flex Messaging WorkManager</description>        <res-ref-name>wm/MessagingWorkManager</res-ref-name>        <res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type>        <res-auth>Container</res-auth>        <res-sharing-scope>Shareable</res-sharing-scope>        </resource-ref>    --></web-app>


至此发布,服务端就算ok了,

?

?

remoteobject:

主要代码如下:

        <s:ChannelSet id="channelSet">            <s:AMFChannel id="amfchannel" url="http://192.168.6.19:8008/blazeds/messagebroker/amf"/>        </s:ChannelSet>        <s:RemoteObject id="ro" destination="bdserver"                         channelSet="{channelSet}" result="onResult(event)" fault="onFault(event)">        </s:RemoteObject>

这样通过ro这个对象就可以直接调用其发布的方法了

?

连接blazeds生成相关代理文件:

BlazeDS 配备

此处需要注意的是如果你的客户端的项目的context root和服务端的webcontext不一致的话就不能生成,会报错,拿我的这个做个列子,我服务端的webcontext是blazeds,而现在客户端的项目webcontext是JNBus,这样会报错,如果你客户端的目录名和服务器的一致就没问题了,但如果不一致的话咋办呢?其实可以临时调整下这个flex project 的context root,改完生成服务代理之后再调整过来,就ok了,改的地方如下图, root url和context root的JNBus换成blazeds

BlazeDS 配备

生成之后会自动生成如下的东西:

BlazeDS 配备

BlazeDS 配备

这样代理文件就算生成好了,下面就看怎么用了,下面是主要代码:

    <fx:Declarations>                <s:ChannelSet id="channelSet">            <s:AMFChannel id="amfchannel" url="http://192.168.6.19:8008/blazeds/messagebroker/amf"/>        </s:ChannelSet>        <s:CallResponder id="getCarCountResult" result="getCarCountResult_resultHandler(event)" />    </fx:Declarations>            private function init(): void {                this.bdServer = new Bdserver();                this.bdServer.channelSet = this.channelSet;                this.getCarCountResult.token = this.bdServer.getCarCount();            }

这样总算可以了

热点排行