[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Security.Error error Error #2048 url: 'http://127.0.0.1:8080/Flex_Service/messagebroker/amf'"]
试了很多遍 竟然是这样
<s:AMFChannel id="myAmf" uri="
http://127.0.0.1:8080/Flex_Service/messagebroker/amf"/>
跟配置链接的flex server 不同 http://localhost:8080...
不一样 就 报错 改了 就ok
1、建立 Dynamic Web Project --记得指定web-server
2、将 从adobe下载的 blazeds 覆盖项目web-root项
3、建立一个类SimpleService 且方法say
4、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>true</param-value>
</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>
5、remoting-config.xml 中添加
<destination id="simpleService">
<properties>
<source>com.test01.SimpleService</source>
</properties>
</destination>
6、动态部署到web-server
7、建立flex项目
8、Flex服务器选择 上面的web-server
根url为: 上面java项目 应用路径
上下文目录为:上面的java项目
9、
flex_client.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="remoteObject" destination="simpleService" fault="faultHandler(event)"
result="resultHandler(event)" source="com.test01.SimpleService">
<s:channelSet>
<s:ChannelSet>
<s:channels>
<s:AMFChannel id="myAmf" uri="http://127.0.0.1:8080/Flex_Service/messagebroker/amf"/>
</s:channels>
</s:ChannelSet>
</s:channelSet>
</s:RemoteObject>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function resultHandler(event:ResultEvent):void{
Alert.show(event.result+"","提示");
}
private function faultHandler(event:FaultEvent):void{
Alert.show(event.fault.toString(), "提示");
}
]]>
</fx:Script>
<s:Button label="发送" click="remoteObject.say()"/>
</s:Application>
10、类SimpleService
<?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="simpleService">
<properties>
<source>com.test01.SimpleService</source>
</properties>
</destination>
</service>
分享到:
相关推荐
总结起来,实现Flex与Java通信涉及多个步骤,包括配置BlazeDS、设置XML文件、处理部署问题、满足Flex类的要求以及处理安全策略。理解并掌握这些知识点对于开发Flex和Java结合的应用程序至关重要。
- 在整合过程中可能会遇到沙箱安全问题,尤其是在使用Adobe Flex与Java进行通信时。为了解决这个问题,需要在Tomcat服务器的相应目录下放置`crossdomain.xml`文件。具体操作如下: - 将`crossdomain.xml`文件放置...
1. 消息传递:BlazeDS是一个基于消息传递的框架,它允许Flex客户端与Java服务器进行实时通信。BlazeDS使用AMF(Action Message Format)协议进行数据编码和传输,以提高性能和效率。 2. 运行结构:BlazeDS组件如...
而前端的Flex应用则可以透过Remoting或BlazeDS(Adobe提供的开源解决方案)与后端的Spring应用进行通信。 Flex与Spring的整合并不是没有挑战。例如,需要处理不同技术栈之间的数据格式转换,以及保证两个技术栈的...
2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 81 2.9.1 问题 81 2.9.2 解决方案 81 2.9.3 工作原理 82 2.10 加载外部资源 82 2.10.1...
2.8 用Java Config简化XML配置 77 2.8.1 问题 77 2.8.2 解决方案 77 2.8.3 工作原理 77 2.9 使Bean感知容器 81 2.9.1 问题 81 2.9.2 解决方案 81 2.9.3 工作原理 82 2.10 加载外部资源 82 2.10.1...