美文网首页
WebSocket OnMessage()方法访问数据库注入失败

WebSocket OnMessage()方法访问数据库注入失败

作者: 闲置的Programmer | 来源:发表于2019-05-21 14:20 被阅读0次

    前两天在做websocket通信的时候,因为要与小程序进行数据交互,要将用户的三围数据通过硬件发送的消息存入数据库,这就需要在onMessage方法里进行持久化,但是userService层总是报空指针异常,加上@Component注解则会启动失败,出现websocket类注入失败和空指针异常,试了网上很多种方式,都没有用,最后通过Configurator获取httpsession,通过httpsession获取service 方式完成对数据库的操作

    1、第一步编写一个继承Configurator的类

    GetHttpSessionConfigurator类

    2、第二步在WebsocketTest中 编写@ServerEndpoint,并在onOpen 方法中获取service

    创建成员变量HttpSession 通过HttpSession获取service

    3、第三步,由于HTTP协议与websocket协议的不同,导致没法直接从websocket中获取协议,放出去执行,会报空指针值异常,因为这个HttpSession并没有设置进去。而设置HttpSession。需要写一个继承ServletRequestListener的监听器。

    将所有Request请求都带上HTTPSession

    4、至此,在WebSocket中就能用service去操作数据库了。

    5、因为之前在网上试了很多种方法,所以启动类加了很多注解,但不知道与这一种方式有没有关系,如果不行的话,可以加上试试

    相关文章

      网友评论

          本文标题:WebSocket OnMessage()方法访问数据库注入失败

          本文链接:https://www.haomeiwen.com/subject/ikmhzqtx.html