将消息从BlazeDs推送到Flex(在Java中调用)

将消息从BlazeDs推送到Flex(在Java中调用),java,apache-flex,tomcat,messaging,blazeds,Java,Apache Flex,Tomcat,Messaging,Blazeds,我很难理解如何通过BlazeDsOn Tomcat向Flex客户端发送消息。我可以从客户端发送/接收消息,但我有一种情况需要发送一条源自Java的消息。我想这会容易得多 我尝试过的方法: MessageService.pushMessageToClientsmsg ServiceAdapter.invokemsg 异常:flex.messaging.MessageException:java.lang.NullPointerException:null MessageBroker.routeMe

我很难理解如何通过BlazeDsOn Tomcat向Flex客户端发送消息。我可以从客户端发送/接收消息,但我有一种情况需要发送一条源自Java的消息。我想这会容易得多

我尝试过的方法:

MessageService.pushMessageToClientsmsg

ServiceAdapter.invokemsg

异常:flex.messaging.MessageException:java.lang.NullPointerException:null

MessageBroker.routeMessageToServicemsg

[BlazeDS]14:03:35.898调用服务时出现异常:无消息:Flex message Flex.messaging.messages.AsyncMessage

SERVICES.XML:

各位有什么想法吗

<channel-definition id="my-streaming-amf"
    class="mx.messaging.channels.StreamingAMFChannel">
    <endpoint url="http://192.168.2.43:8400/testdrive/messagebroker/streamingamf"
    class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
</channel-definition>
<?xml version="1.0" encoding="UTF-8"?>
<adapters>

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

    <adapter-definition id="AMFMessageAdapter" class="services.AMFMessageAdapter" default="true" />

   <!-- <adapter-definition id="jms" class="flex.messaging.services.messaging.adapters.JMSAdapter"/> -->

</adapters>

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

<destination id="AMFMessageAdapterDestination">
    <channels>
        <channel ref="my-streaming-amf" />
    </channels>
    <adapter ref="AMFMessageAdapter" />
</destination>
package services;

import flex.messaging.messages.AsyncMessage;
import flex.messaging.messages.Message;
import flex.messaging.services.MessageService;
import flex.messaging.services.ServiceAdapter;

/**
 * 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 AMFMessageAdapter extends ServiceAdapter {

    String testMessage = "TEST_MESSAGE";

    @Override
    public Object invoke(Message message) {
            AsyncMessage newMessage = (AsyncMessage) message;
        newMessage.setBody(testMessage);
        MessageService msgService = (MessageService)getDestination().getService();
        msgService.pushMessageToClients(newMessage, false);
        return null;
    }

}