如何使用ExecutorSubscribableChannel

时间:2014-04-12 05:15:47

标签: java spring stomp spring-messaging

与问题autowire simpmessagingtemplate

相关

我遇到类ExecutorSubscribableChannel的问题。我希望服务器向浏览器发送异步消息。 如何正确使用ExecutorSubscribableChannel

示例:

public class GreetingController {


    @Autowired
    private SimpMessagingTemplate template;

    public void setTemplate(SimpMessagingTemplate template) {
        this.template = template;
    }

    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Greeting greeting(HelloMessage message) throws Exception {
        Thread.sleep(5000); // simulated delay
        this.template.convertAndSend("/topic/greetings", "Hello World");
        return new Greeting("Hello, " + message.getName() + "!");
    }
}

但是我在行中发送的“hello world”文本

this.template.convertAndSend("/topic/greetings", "Hello World");
浏览器未收到

。其他一切都很好。

bean配置为:

<bean id="executorSC" class="org.springframework.messaging.support.ExecutorSubscribableChannel"/>

<bean id="template" class="org.springframework.messaging.simp.SimpMessagingTemplate">
    <constructor-arg index="0" ref="executorSC"/>
</bean>

提前致谢。

2 个答案:

答案 0 :(得分:0)

这个问题是由于Intellij IDEA中的一个错误而写的。回复位于Could not autowire. No beans of SimpMessagingTemplate type found

已在JetBrains中创建ticket来解决此问题。

答案 1 :(得分:0)

尝试使用此配置

<websocket:message-broker
    application-destination-prefix="/app">
    <websocket:stomp-endpoint path="/ws">
        <websocket:sockjs />
    </websocket:stomp-endpoint>
    <websocket:simple-broker prefix="/topic/greetings" />
</websocket:message-broker>

insted of

<bean id="executorSC" class="org.springframework.messaging.support.ExecutorSubscribableChannel"/>