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