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?
Views
Replies
Total Likes