Can not receive message from blazeds in flex application

Untorikentink

New Member
From THIS thread's comment I created a java class which will send message to client flex application. But the client doesn't receive any message.The java class ispackage testpackage;import flex.messaging.MessageBroker;import java.lang.Object;import flex.messaging.messages.AsyncMessage;import flex.messaging.messages.Message;import flex.messaging.services.MessageService;import flex.messaging.services.ServiceAdapter;import java.util.UUID;/** * Test service adapter. Great for testing when you want to JUST SEND AN OBJECT and nothing * else. This class has to stay in the main codebase (instead of test) because, when it's used * it needs to be deployed to Tomcat. * @author Kevin G * */public class TestServiceAdapter extends ServiceAdapter {private volatile boolean running;private Message createTestMessage() { System.out.println("createTestMessage"); final AsyncMessage msg = new AsyncMessage(); msg.setDestination(getClass().getSimpleName() + "Destination"); msg.setClientId(UUID.randomUUID()+""); msg.setMessageId(UUID.randomUUID()+""); msg.setBody("MessageFromJava"); System.out.println(msg.toString()); return msg;}private void sendMessageToClients(Message msg){ System.out.println("sendMessageToClients"+"\n Printing message is not a fun"); // ((MessageService) getDestination().getService()).pushMessageToClients(msg, false); MessageBroker.getMessageBroker(null).routeMessageToService(msg, null);}/** * @see flex.messaging.services.ServiceAdapter#start() */@Overridepublic void start(){ super.start(); System.out.println("start"); Thread messageSender = new Thread(){ public void run(){ running = true; while(running){ sendMessageToClients(createTestMessage()); secondsToSleep(3); } } }; messageSender.start(); }/** * @see flex.messaging.services.ServiceAdapter#stop() */ @Override public void stop() { super.stop(); running = false; }/** * This method is called when a producer sends a message to the destination. Currently, * we don't care when that happens. */ @Override public Object invoke(Message message) { System.out.println("invoke"); if (message.getBody().equals("stop")) { running = false; } return null; } private void secondsToSleep(int seconds) { System.out.println("secondsToSleep"); try{ Thread.sleep(seconds * 1000); }catch(InterruptedException e){ System.out.println("TestServiceAdapter Interrupted while sending messages"); } } }The services-config.xml file is<channels><channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel"> <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" class="flex.messaging.endpoints.StreamingAMFEndpoint"/> </channel-definition> </channels>The messaging-config.xml file is<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"/> --> <adapter-definition id="TestServiceAdapter" class="testpackage.TestServiceAdapter"/></adapters><default-channels> <channel ref="my-polling-amf"/></default-channels><destination id="TestServiceAdapterDestination"> <channels> <channel ref="my-streaming-amf"/> </channels> <adapter ref="TestServiceAdapter"/></destination>and the mxml application file is<?xml version="1.0"?> <!-- ds\messaging\CreateConsumerAS.mxml --><mx: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" creationComplete="logon();"><fx:Script> <![CDATA[ import mx.messaging.*; import mx.messaging.messages.*; import mx.messaging.events.*; // Create a variable of type Consumer. private var consumer:Consumer; // Create the Consumer. private function logon():void { consumer = new Consumer(); consumer.destination = "TestServiceAdapterDestination"; consumer.addEventListener (MessageEvent.MESSAGE, messageHandler); consumer.addEventListener (MessageFaultEvent.FAULT, faultHandler); consumer.subscribe(); } // Write received message to TextArea control. private function messageHandler(event:MessageEvent):void { // Handle message event. ta.text += event.message.body + "HELLO \n"; } private function faultHandler(event:MessageFaultEvent):void{ // Handle message fault event. } ]]></fx:Script> <mx:TextArea id="ta" width="100%" height="100%"/></mx:Application>
 
Back
Top