Flex应用BlazeDS时报错:[RPC Fault faultString="发送失败" faultCode="Client.Error.MessageSend"

本文解决了一个常见的BlazeDS问题:在尝试连接到messagebroker时出现404错误。通过调整.flexProperties文件中的serverContextRoot配置,从默认的/WebContent改为项目名称,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚接触Flex,在学习BlazeDS的时候,碰见这个问题,调了一天也不知道为什么

错误[RPC Fault faultString="发送失败" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost:8080/WebContent/messagebroker/amf'"]

上网狂搜,终于解决了。

参考http://www.cnblogs.com/adaikiss/archive/2010/08/17/1801231.html

发送请求总是404 NOT FOUND! 后来在网上看到有人提到

http://localhost/WebContent/messagebroker/amf

对比自己的请求,也是这样的...

services-config.xml里明明是

http://{server.name}:{server.port}/{context.root}/messagebroker/amf

的,我的webapp访问用的也是项目名,而不是WebContent呀,然后试着把services-config.xml里的

{context.root}用项目名替换,不成功,然后去项目根目录看,发现

.flexProperties文件里有段

<flexProperties enableServiceManager="false" flexServerFeatures="4" flexServerType="8" flexWarLocation="E:/blazeds.war" serverContextRoot="/WebContent" serverRoot="E:/workspaces/flex/WebContent" serverRootURL="http://localhost:80/flex" toolCompile="true" useServerFlexSDK="false" version="2"/>

真凶终于出来了...就是serverContextRoot="/WebContent"这个,把它改成项目名,问题就解决了...

这个是创建项目时自动生成的,谁知道它会这么傻...

还有一种方法是说在mxml中的RemoteObject对象定义时加上endpoint="messagebroker/amf" 属性。(这个没试过)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值