Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Problem with simple chat application

Avatar

Level 1

Hello,

could someone help me with a simple chat application? I've installed lcds with integrated tomcat and i've created a new flex project using lcds template


I have this result

Consumer faultCode: Server.Processing
Consumer faultDetail: null

Consumer faultstring: No destination with id 'chat' is registered with any service.

My web.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
    <display-name>LiveCycle Data Services</display-name>
    <description>LiveCycle Data Services Application</description>

    <!-- MessageBroker Servlet -->
    <servlet>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <display-name>MessageBrokerServlet</display-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>

</web-app>

My services-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<services-config>

    <services>
        <service-include file-path="messaging-config.xml" />
               
        <!--
        Application level default channels. Application level default channels are
        necessary when a dynamic destination is being used by a service component
        and no ChannelSet has been defined for the service component. In that case,
        application level default channels will be used to contact the destination.
        -->  
        <default-channels>
           <channel ref="my-amf"/>
        </default-channels>

    </services>
    <channels>
        <!-- Servlet Based endpoints -->
        <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint url="http://localhost:8400/lcds/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
            <properties>
                <polling-enabled>false</polling-enabled>
            </properties>
        </channel-definition>
    </channels>
</services-config>


My messaging-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<service id="message-service"
    class="flex.messaging.services.MessageService">

    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>

    <adapters>
        <adapter-definition id="actionscript" class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" default="true" />
        <adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter"/>
    </adapters>

   <destination id="chat">
      <properties>
          <adapter ref="actionscript"/>
  
          <network>
              <subscription-timeout-minutes>0</subscription-timeout-minutes>
          </network>
          <server>
            <message-time-to-live>0</message-time-to-live>
              <allow-subtopics>true</allow-subtopics>
              <subtopic-separator>.</subtopic-separator>
          </server>
      </properties>
   </destination>

</service>

My .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"
               creationComplete="consumer.subscribe()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <mx:Producer id="producer" destination="chat" fault="producer_faultHandler(event)"/>
        <mx:Consumer id="consumer" destination="chat" message="messageHandler(event.message)" fault="consumer_faultHandler(event)"/>
    </fx:Declarations>
   
    <fx:Script>
        <![CDATA[
            import mx.messaging.events.MessageFaultEvent;
            import mx.messaging.messages.AsyncMessage;
            import mx.messaging.messages.IMessage;
           
            private function send():void
            {
            var message:IMessage = new AsyncMessage();
            message.body.chatMessage = msg.text;
            producer.send(message);
            msg.text = "";
            }
           
            private function messageHandler(message:IMessage):void
            {
            log.text += message.body.chatMessage + "\n";   
            }
       
            protected function producer_faultHandler(event:MessageFaultEvent):void
            {
                // TODO Auto-generated method stub
                log.text += "\n Producer faultCode: " + event.faultCode;
                log.text += "\n Producer faultDetail: " + event.faultDetail;
                log.text += "\n Producer faultstring: " + event.faultString;
            }
           
            protected function consumer_faultHandler(event:MessageFaultEvent):void
            {
                // TODO Auto-generated method stub
                log.text += "\n Consumer faultCode: " + event.faultCode;
                log.text += "\n Consumer faultDetail: " + event.faultDetail;
                log.text += "\n Consumer faultstring: " + event.faultString;
            }
           
        ]]>
    </fx:Script>
    <mx:Panel title="Chat" width="100%" height="100%">
        <mx:TextArea id="log" width="100%" height="100%"/>
        <mx:ControlBar>
            <mx:TextInput id="msg" width="100%" enter="send()"/>
            <mx:Button label="Send" click="send()"/>
        </mx:ControlBar>
    </mx:Panel>
   
</s:Application>

Can someone tell me where is the problem. What i'm doing wrong?

0 Replies