关于flex通过blazeDS与java通信

刚刚学习flex3通过BlazeDS连接Java,分别写了flex客户端和java服务器端,就是最简单的hello world,前台在TextInput输入字符串,点击按钮在label中显示Hello+字符串,启动服务器,并无异常,结果单击按钮后出现Adobe Flash Player 9的调试版提示错误,具体如下:

[RPC Fault faultString="[MessagingError message='Destination 'helloworld' either does not exist or the destination has no channels defined (and the application does not define any default channels.)']" faultCode="InvokeFailed" faultDetail="Couldn't establish a connection to 'helloworld'"]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::invoke()[E:\dev\3.1.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:259]
at mx.rpc.remoting.mxml::Operation/http://www.adobe.com/2006/flex/mx/internal::invoke()[E:\dev\3.1.0\frameworks\projects\rpc\src\mx\rpc\remoting\mxml\Operation.as:197]
at mx.rpc.remoting::Operation/send()[E:\dev\3.1.0\frameworks\projects\rpc\src\mx\rpc\remoting\Operation.as:113]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.rpc.remoting.mxml::Operation/send()[E:\dev\3.1.0\frameworks\projects\rpc\src\mx\rpc\remoting\mxml\Operation.as:170]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.rpc::AbstractService/http://www.adobe.com/2006/actionscript/flash/proxy::callProperty()[E:\dev\3.1.0\frameworks\projects\rpc\src\mx\rpc\AbstractService.as:290]
at BlazeDSHelloWorld/sayHello()[D:\blazeds\tomcat\webapps\blazedsHello\src\BlazeDSHelloWorld.mxml:15]
at BlazeDSHelloWorld/___BlazeDSHelloWorld_Button1_click()[D:\blazeds\tomcat\webapps\blazedsHello\src\BlazeDSHelloWorld.mxml:27]

请教指点。

'Destination 'helloworld' either does not exist or the destination has no channels defined (and the application does not define any default channels.)'
1,目标'helloworld'没找到
在你的java工程里面WebRoot\WEB-INF\flex文件夹找到remoting-config.xml,看看有没有这样的配置:
[code="xml"]
//这里的id就是flex里面的destination,注意大小写

com.flexjava.HelloWorld //这是写的是你自己的java类,注意完整的报包名


[/code]
对应的flex里面配置:
[code="xml"]
result="resultHandler(event)" fault="faultHandler(event)"/>
[/code]
2,配置文件的默认通道未设置
同样是remoting-config.xml,看看里面有没有这样的配置:
[code="xml"]

//这里引用了services-config.xml中的配置项,决定你选择何种远程调用方式,常用的就是my-amf,其他的你可以查看services-config.xml,找点资料研究下,这里你只要这样写就行了

[/code]

我觉得你就直接去网上先找个写好的例子,直接先看懂再搞

blazeds后台的destination没配好,可以参考一下最简单的chat的那个sample