Pregunta

relacionado con la pregunta Autowire SimpMessagingTemplate

Estoy teniendo problemas para los ejecutores de la claseBSCRIBABLECHANNEL.Quiero que el servidor envíe un mensaje asíncrono al navegador. ¿Cómo puedo usar ejecutores adecuadamenteUsCribAdreChannel ?

Ejemplo:

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() + "!");
    }
}

Pero el texto "Hello World" que estoy enviando en la línea

this.template.convertAndSend("/topic/greetings", "Hello World");

no está siendo recibido por el navegador.Todo lo demás funciona bien.

La configuración de frijoles es:

<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>

gracias de antemano.

¿Fue útil?

Solución

Esta pregunta fue escrita debido a un error en la idea de IntelliJ.La respuesta es en no pudo Autowire.No se encontraron frijoles de tipo SimpMessagingTemplate.

a Ticket ha sido creado en JetBains para resolver este problema.

Otros consejos

Intenta usar esta configuración

<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>

en lugar de

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top