1 Reply Latest reply on Sep 25, 2006 7:28 AM by knallore_adobe

    ChannelConnect Failed. error null

    arkcto
      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.