博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring BlazeDs 集成问题
阅读量:4199 次
发布时间:2019-05-26

本文共 3633 字,大约阅读时间需要 12 分钟。

环境:

  • Spring blazeDS Integration 1.0.0 release
  • blazeDS 3.2.0.3978
  • jdk1.6.0_06
  • flex sdk 3.2.0
  • flex builder 3

在web.xml中配置DispatcherServlet

<?
xml version="1.0" encoding="UTF-8"
?>
<
web-app 
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xmlns
="http://java.sun.com/xml/ns/javaee"
 xmlns:web
="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id
="WebApp_ID"
 version
="2.5"
>
    
<
display-name
>
flex_server
</
display-name
>
    
<
context-param
>
        
<
param-name
>
contextConfigLocation
</
param-name
>
        
<
param-value
>
/WEB-INF/context-*.xml
</
param-value
>
    
</
context-param
>
    
<
listener
>
        
<
listener-class
>
org.springframework.web.context.ContextLoaderListener
</
listener-class
>
    
</
listener
>
    
<
servlet
>
        
<
servlet-name
>
flex
</
servlet-name
>
        
<
servlet-class
>
org.springframework.web.servlet.DispatcherServlet
</
servlet-class
>
        
<
load-on-startup
>
1
</
load-on-startup
>
    
</
servlet
>
    
<
servlet-mapping
>
        
<
servlet-name
>
flex
</
servlet-name
>
        
<
url-pattern
>
/messagebroker/*
</
url-pattern
>
    
</
servlet-mapping
>
    
<
welcome-file-list
>
        
<
welcome-file
>
index.html
</
welcome-file
>
    
</
welcome-file-list
>
</
web-app
>

在flex-servlet.xml中定义destination

<?
xml version="1.0" encoding="UTF-8"
?>
<
beans 
xmlns
="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context
="http://www.springframework.org/schema/context"
    xmlns:tx
="http://www.springframework.org/schema/tx"
 xmlns:flex
="http://www.springframework.org/schema/flex"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    http://www.springframework.org/schema/flex   
    http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"
>
    
<
flex:message-broker 
/>
    <!-- premiumService是普通的业务bean -->
    
<
flex:remoting-destination 
ref
="premiumService"
/>
</
beans
>

这样在remoting-config.xml中就不需要定义destination了

<?
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="premiumService">
        <properties>
            <source>org.hag.flex.service.PremiumService</source>
        </properties>
    </destination>
    
-->
</
service
>

测试

<?
xml version="1.0" encoding="utf-8"
?>
<
mx:Application 
xmlns:mx
="http://www.adobe.com/2006/mxml"
    creationComplete
="premiumService.getPremiumList()"
>
    
<
mx:Script
>
        
<![CDATA[
            <!-- 省略import -->
            private function resultHandler(evt:ResultHandler):void
            {
                Alert.show(evt.result.toString());
            }
            private function faultHandler(evt:FaultHandler):void
            {
                Alert.show(evt.fault.toString());
            }
        
]]>
    
</
mx:Script
>
    
<
mx:RemoteObject 
id
="premiumService"
 ref
="premiumService"
        result
="resultHandler(event)"
 fault
="faultHandler(event)"
/>
</
mx:Application
>

结果这时候报错,destination "premiumService" either does not exists....
原因是mxml编译时要根据remoting-config.xml来处理destination的定义,而我们把premiumService定义在了spring bean中,所以它根本就不知道premiumService的存在。取消掉remoting-config.xml的注释,再次对mxml进行编译(如修改后保存),在浏览器中清除缓存、刷新,OK,结果出来了。
注意在tomcat启动时又要把remoting-config.xml定义的destination注释掉,否则会出问题(那是由于blazeds找到两个相同的destination)。或者干脆在其他地方建立一个文件专门用于mxml的编译。

转载地址:http://esbli.baihongyu.com/

你可能感兴趣的文章
质量度量分析与测试技术 培训大纲
查看>>
欢迎加入【亿能测试快讯】邮件列表!
查看>>
为什么我们的自动化测试“要”这么难
查看>>
LoadRunner性能脚本开发实战训练
查看>>
测试之途,前途?钱途?图何?
查看>>
测试设计与测试项目实战训练
查看>>
HP Sprinter:敏捷加速器
查看>>
IDC 的调查发现开发人员的37%的时间花在解决BUG上
查看>>
单元测试培训PPT
查看>>
adb常用命令
查看>>
通过LR监控Linux服务器性能
查看>>
通过FTP服务的winsockes录制脚本
查看>>
LRwinsocket协议测试AAA服务器
查看>>
Net远程管理实验
查看>>
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>
几种典型的反病毒技术:特征码技术、覆盖法技术等
查看>>
性能测试一般过程与LR性能测试过程
查看>>
Software Security Testing软件安全测试
查看>>
SQL注入漏洞全接触--进阶篇
查看>>
SQL注入漏洞全接触--高级篇
查看>>