Java Spring Websocket MessageSendingOperation在没有@Scheduled的情况下无法运行

Java Spring Websocket MessageSendingOperation在没有@Scheduled的情况下无法运行,java,spring,spring-websocket,Java,Spring,Spring Websocket,不起作用,它得到了java.lang.NullPointerException 这是否意味着我只能在用@Scheduled注释的函数中使用messagingTemplate.convertAndSend(…) 请帮忙。。。 @Deendayal Garg,谢谢你的帮助,我是按照你的建议做的: 公共类通信器实现ApplicationListener{ sendMessage(); public void sendMessage(){ messagingTemplate.c

不起作用,它得到了java.lang.NullPointerException

这是否意味着我只能在用@Scheduled注释的函数中使用messagingTemplate.convertAndSend(…)

请帮忙。。。 @Deendayal Garg,谢谢你的帮助,我是按照你的建议做的: 公共类通信器实现ApplicationListener{

sendMessage();

public void sendMessage(){

           messagingTemplate.convertAndSend("/topic/data", "hello");

    }
}
私有最终消息发送操作消息模板;
@自动连线
公共通信器(最终消息发送操作消息模板){
this.messagingTemplate=messagingTemplate;
}
Application event上的公共无效(BrokerAvailabilityEvent事件){
//TODO自动生成的方法存根
}
公共无效发送消息(消息数据){
这个.messagingTemplate.convertAndSend(“/topic/data”,data.getBody());
System.out.println(new Random().nextInt(100));
}
}
公共类网络配置扩展了WebMVCConfigureAdapter{
@凌驾
公共无效配置DefaultServletHandling(
最终默认ServletHandlerConfigurer(配置器){
configurer.enable();
}
@豆子
公共通讯员(){
通信器通信=新的通信器();
返回命令;
}
}

然后我在下面的类中注入bean

private final MessageSendingOperations<String> messagingTemplate;

@Autowired
public Communicator(final MessageSendingOperations<String> messagingTemplate){
    this.messagingTemplate = messagingTemplate;
}

public void onApplicationEvent(BrokerAvailabilityEvent event) {
    // TODO Auto-generated method stub
}


public void sendMessage(Message data) {
    this.messagingTemplate.convertAndSend("/topic/data",data.getBody());
    System.out.println(new Random().nextInt(100));
  }
}
public class WebConfiguration extends WebMvcConfigurerAdapter {

@Override
public void configureDefaultServletHandling(
    final DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}


@Bean
public Communicator communicator(){
    Communicator comm = new Communicator();
    return comm;
}
公共类StepExecutionListener实现StepExecutionListener、ApplicationListener{
@自动连线
沟通者;
Message msg=新消息();
msg.setBody(“Twale!”);
msg.setType(“测试”);
communicator.sendDataUpdates(msg);
}

但在调用communicator.sendDataUpdates(msg)后,我仍然得到了java.lang.NullPointerException

包含
sendMessage
的类是bean吗?如果没有,则将其设置为bean,然后将该bean注入到您希望调用的
sendMessage
函数的任何位置……感谢您的帮助,我已经编辑了这个问题,请查看上面的更新版本。您的spring配置是如何完成的?我觉得
messagesendingooperations
bean没有正确地自动连接。你能检查一下这个吗
private final MessageSendingOperations<String> messagingTemplate;

@Autowired
public Communicator(final MessageSendingOperations<String> messagingTemplate){
    this.messagingTemplate = messagingTemplate;
}

public void onApplicationEvent(BrokerAvailabilityEvent event) {
    // TODO Auto-generated method stub
}


public void sendMessage(Message data) {
    this.messagingTemplate.convertAndSend("/topic/data",data.getBody());
    System.out.println(new Random().nextInt(100));
  }
}
public class WebConfiguration extends WebMvcConfigurerAdapter {

@Override
public void configureDefaultServletHandling(
    final DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}


@Bean
public Communicator communicator(){
    Communicator comm = new Communicator();
    return comm;
}
public class StepExecListener implements StepExecutionListener, ApplicationListener<BrokerAvailabilityEvent>{
@Autowired
Communicator communicator;
Message msg = new Message();
msg.setBody("Twale!");
msg.setType("test");

communicator.sendDataUpdates(msg);
}