मेरा @Autowired (socket_mesajService) SocketHandler.class में काम नहीं करता है मुझे NullPointerException मिला है लेकिन @Autowired (socket_mesajService) अन्य कक्षाओं के लिए काम कर रहा है।

यह मेरा सॉकेटहैंडलर वर्ग है और इस वर्ग में socket_mesajService पर कॉल करें

@Component
public class SocketHandler extends TextWebSocketHandler {
    @Autowired
    private Socket_mesajService socket_mesajService;

    List<Socket_session_model> sessions = new ArrayList<>();

    @Override
    public void handleTextMessage(WebSocketSession session, TextMessage message) throws InterruptedException, IOException {
        for(Socket_session_model socket_session__model : sessions) {
            socket_mesajService.Socket_mesaj_templateAll(socket_session__model.getUserid());
        }
    }
}

यह मेरा WebSocketConfig वर्ग है

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
    registry.addHandler(new SocketHandler(), "/name");

 }

यह मेरा एप्लिकेशन रन क्लास है //////////////////////

@Configuration
@EnableAutoConfiguration
@SpringBootApplication   (scanBasePackages={"com.polipool.*"})
@EntityScan( basePackages = {"com.polipool.model"})
public class ApplicationRun extends SpringBootServletInitializer {

  public static void main(String[] args) throws Exception {
        SpringApplication.run(ApplicationRun.class, args);
    }

  @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        FacesServlet servlet = new FacesServlet();
        return new ServletRegistrationBean(servlet, "*.xhtml");
    }

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder 
  builder) {
      return builder.sources(ApplicationRun.class);
   }

} 

Socket_mesajServiceImpl वर्ग

@Service
public class Socket_mesajServiceImpl implements Socket_mesajService {
@Autowired
private Socket_mesajDao socket_mesajDao;
@Override
public List<Socket_mesaj_template> Socket_mesaj_templateAll(String 
messageid) {
    return socket_mesajDao.Socket_mesaj_templateAll(messageid);
}

}

सॉकेट_मेसज सेवा

public interface Socket_mesajService {
public void Socket_mesaj_tamplateadd (Socket_mesaj_template mesaj);
public void Socket_mesaj_templateupdate (Socket_mesaj_template user);
public void Socket_mesaj_templatedelete (String messageid);
public List<Socket_mesaj_template> Socket_mesaj_templateAll (String userid);
}
0
user8202387 24 मई 2018, 14:11

1 उत्तर

सबसे बढ़िया उत्तर

समस्या इस लाइन पर है:

registry.addHandler(new SocketHandler(), "/name");

आप स्वयं SocketHandler का एक उदाहरण बनाते हैं, इसलिए इसके अंदर आपकी संपत्तियां null होंगी

इसके बजाय, @Autowired SocketHandler को अपने WebSocketConfig कॉन्फिग क्लास में, और उस इंस्टेंस को "registry" में जोड़ें, आपकी समस्या का समाधान करेगा

-1
Mạnh Quyết Nguyễn 24 मई 2018, 15:14