RPC Fault faultString="Send failed"
faultCode="Client.Error.MessageSend"
faultDetail="Channel.Connect.Failed error null"]
Hi folks - I've been succesfully able to get RPC services
running. However, when I try to run a simple FDS example, I get the
following error :
RPC Fault faultString="Send failed"
faultCode="Client.Error.MessageSend"
faultDetail="Channel.Connect.Failed error null"]
My mxml code is given below :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"creationComplete="playaservice.fill(players)">
<mx:DataService id="playaservice"
destination="PlayerAssembler"/>
<mx:ArrayCollection id="players"/>
<mx:Panel title="Get Players">
<mx:DataGrid id="playergrid" dataProvider="{players}"
editable="true">
<mx:columns>
<mx:DataGridColumn dataField="firstName"
headerText="First Name"/>
<mx:DataGridColumn dataField="lastName" headerText="Last
Name"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
My data-management config file looks like this :
<?xml version="1.0" encoding="UTF-8"?>
<service id="data-service"
class="flex.data.DataService"
messageTypes="flex.data.messages.DataMessage">
<adapters>
<adapter-definition id="actionscript"
class="flex.data.adapters.ASObjectAdapter"
default="true"/>
<adapter-definition id="java-adapter"
class="flex.data.adapters.JavaAdapter"/>
</adapters>
<default-channels>
<channel ref="my-rtmp"/>
</default-channels>
<destination id="PlayerAssembler">
<adapter ref="java-adapter" />
<properties>
<source>rpc.playerinfo.PlayerAssembler</source>
<scope>application</scope>
<cache-items>true</cache-items>
<network>
<session-timeout>20</session-timeout>
<paging enabled="true" pageSize="10" />
<throttle-inbound policy="ERROR" max-frequency="500"/>
<throttle-outbound policy="REPLACE"
max-frequency="500"/>
</network>
<server>
<fill-method>
<name>getPlayers</name>
</fill-method>
</server>
</properties>
</destination>
</service>
My services-config.xml looks like this.
?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<service-include file-path="remoting-config.xml" />
<service-include file-path="proxy-config.xml" />
<service-include file-path="messaging-config.xml" />
<service-include file-path="data-management-config.xml"
/>
</services>
<security>
<login-command
class="flex.messaging.security.TomcatLoginCommand"
server="Tomcat"/>
<security-constraint id="basic-read-access">
<auth-method>Basic</auth-method>
<roles>
<role>guests</role>
<role>accountants</role>
<role>employees</role>
<role>managers</role>
</roles>
</security-constraint>
</security>
<channels>
<channel-definition id="my-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint uri="
http://{server.name}:{server.port}/{context.root}/messagebroker/amf"class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
<channel-definition id="my-secure-amf"
class="mx.messaging.channels.SecureAMFChannel">
<endpoint
uri="https://{server.name}:9100/{context.root}/messagebroker/amfsecure"
class="flex.messaging.endpoints.SecureAMFEndpoint"/>
</channel-definition>
<channel-definition id="my-polling-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint uri="
http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling"class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>8</polling-interval-seconds>
</properties>
</channel-definition>
<channel-definition id="my-rtmp"
class="mx.messaging.channels.RTMPChannel">
<endpoint uri="rtmp://{server.name}:2037"
class="flex.messaging.endpoints.RTMPEndpoint"/>
<properties>
<idle-timeout-minutes>20</idle-timeout-minutes>
<client-to-server-maxbps>100K</client-to-server-maxbps>
<server-to-client-maxbps>100K</server-to-client-maxbps>
</properties>
</channel-definition>
<channel-definition id="my-http"
class="mx.messaging.channels.HTTPChannel">
<endpoint uri="
http://{server.name}:{server.port}/{context.root}/messagebroker/http"class="flex.messaging.endpoints.HTTPEndpoint"/>
</channel-definition>
<channel-definition id="my-secure-http"
class="mx.messaging.channels.SecureHTTPChannel">
<endpoint
uri="https://{server.name}:9100/{context.root}/messagebroker/httpsecure"
class="flex.messaging.endpoints.SecureHTTPEndpoint"/>
</channel-definition>
</channels>
<logging>
...
</logging>
<system>
......
</system>
</services-config>
I am using Tomcat. With the same services-config.xm file,
I've been able to get simple RPC services working. But I am unable
to get a simple FDS working.
My Java Assembler class looks like this:
public class PlayerAssembler
extends AbstractAssembler {
public Collection getPlayers() {
System.out.println("Filling players");
PlayerService playerService = new PlayerService();
return playerService.getPlayersAsList(); // This just
returns a list of Player objects. Player is a simple Java class.
}
}
Does my error message have anything to do with RTMP protocol
?
I see that data-management-config.xml has 'my-rtmp' as the
default channel.
<default-channels>
<channel ref="my-rtmp"/>
</default-channels>
When I look for my-rtmp in the services-config.xml, I see the
following reference
<channel-definition id="my-rtmp"
class="mx.messaging.channels.RTMPChannel">
<endpoint uri="rtmp://{server.name}:2037"
class="flex.messaging.endpoints.RTMPEndpoint"/>
<properties>
<idle-timeout-minutes>20</idle-timeout-minutes>
<client-to-server-maxbps>100K</client-to-server-maxbps>
<server-to-client-maxbps>100K</server-to-client-maxbps>
</properties>
</channel-definition>
I am curious - when I type rtmp://locahost:2037/ I get the
following error "rtmp is not a registered protocol
Could this in anyway be related to the 'ChannelConnectFailed"
problem ?
Please help.
Thank you.