【详细】WebSocket传递对象(sendObject方法)报错解决方案

WebSocket 实时更新mysql数据到页面 使用websocket的初衷是,要实时更新mysql中的报警信息到web页面显示 没怎么碰过web,代码写的是真烂,不过也算是功能实现了,放在这里也是鞭策自己,web也要多下些功夫准备工作先看看mysql中数据的格式数据封装public class AlarmMessage { private String fanNo; private String time; priva 阅读详情

当我们在服务端使用WebSocket的sendObject方法直接向前端传递一个对象时,会有如下报错

javax.websocket.EncodeException: No encoder specified for object of class [这里是你sendObject里传的对象的全名]

原因是你没有在@ServerEndpoint里指定Websocket的编码器。解决方法如下:

编写一个编码器类,下面是一个比较通用的编码器,你可以直接复制粘贴然后进行简单的修改就好,注解也很详细。



import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.json.JsonMapper;

import javax.websocket.EncodeException;
import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;

/*
* Text<ResponseMessage>里的ResponseMessage是我自己写的一个消息类
* 如果你写了一个名叫Student的类,需要通过sendObject()方法发送,那么这里就是Text<Student>
*/
public class ServerEncoder implements Encoder.Text<ResponseMessage> {

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        // 这里不重要
    }

    @Override
    public void init(EndpointConfig arg0) {
        // TODO Auto-generated method stub
        // 这里也不重要

    }

    /*
    *  encode()方法里的参数和Text<T>里的T一致,如果你是Student,这里就是encode(Student student)
    */
    @Override
    public String encode(ResponseMessage responseMessage) throws EncodeException {
        try {
            /*
            * 这里是重点,只需要返回Object序列化后的json字符串就行
            * 你也可以使用gosn,fastJson来序列化。
            */
            JsonMapper jsonMapper = new JsonMapper();
            return jsonMapper.writeValueAsString(responseMessage);

        } catch ( JsonProcessingException e) {
            e.printStackTrace();
            return null;
        }
    }
}

然后在@ServerEndpoint注解的类中指定encoders

/*
*这里的ServerEncoder就是上面的编码器类
*/
@ServerEndpoint(value = "/chat/{room}",encoders = { ServerEncoder.class })
@Component
public class WebSocketService {

    // 你的代码
}

  如果你要传递多种类型的对象,也可以编写多个编码器,然后在endocer里添加多个。

如果你有兴趣,可以来我的博客逛逛

https://timegoesby.top/

本文章参考自下面这篇文章

https://blog.youkuaiyun.com/u014175572/article/details/46490395

LS-DYNA中的流固耦合 在LS-DYNA中对流固耦合问题的求解提供了两种方法,ALE流固耦合和基于ICFD的流固耦合。本文将对两种方法的各自特点进行分析。 ALE方法的流固耦合 适用范围 ALE求解器主要用于层流。ALE求解器也不是完全的NS求解器,因此不考虑边界层的影响,比如阻力。流体粘性效应仅通过材料模型获得,也就是*mat_null的MU。ale求解器是为了求解高压高速度梯度的短时问题而开发的。该求解器并不适用于求解低压力梯度问题比如声学,也不适用于长时间问题(秒的尺度甚至更长)。时间的限制是显式时... 阅读详情

相关推荐

Windows 11下用Ollama一键部署DeepSeek-R1大模型(附8B/14B版本选择建议)

本文详细介绍了在Windows 11环境下使用Ollama工具一键部署DeepSeek-R1大模型的完整指南,包括8B和14B版本的选择建议。通过硬件评估、安装配置、性能优化等步骤,帮助开发者高效实现本地部署,提升AI应用体验。

weixin_29079643的博客 272

websocket使用sendObject产生的问题

当在使用`WebSocket`服务端向客户端发送消息时使用`sendObject`的方式传递信息出现了以下这个错误:javax.websocket.EncodeException: No encoder specified for object of class

安余生的博客 3323

Debian下Rust环境极速安装指南:国内镜像+避坑配置(附清华/中科大源对比)

本文详细介绍了在Debian系统上快速安装和配置Rust开发环境的完整指南。针对国内网络环境,重点对比评测了清华大学、中国科学技术大学等主流镜像源,提供了详细的安装配置步骤、Cargo优化技巧以及常见问题排查方案,帮助开发者显著提升依赖下载和编译效率。

s8t9u0v1w的博客 1161

WebSocket使用SendObject 的编码异常No encoder specified for object of class [class java.util.HashMap] 【已解决】

错误的截图: 在WebSocketService(你的不一定是这个名字,就是websocket的实现类) 这里截取了部门代码,主要就是针对sendObject产生的异常问题的处理 /** * 向指定客户端发送消息(对象的形式) * @param userName * @param object */ public static void sendMessage(String userName,Object object){ try {

小刘爱搬砖 5462

GD32单片机引脚复用指南:如何让JTAG接口的PA15/PB3发挥第二功能?

本文详细介绍了GD32F103Cx系列单片机如何通过AFIO模块进行引脚复用,特别是将默认用于JTAG调试接口的PA15、PB3等引脚释放为普通IO或复用功能引脚。文章从原理出发,结合代码实践,讲解了如何配置调试端口重映射,将JTAG引脚安全地转换为GPIO或定时器通道,并提供了常见问题排查与最佳实践,帮助开发者高效利用有限的引脚资源。

nept的博客 807

YOLOv11改进 | Conv篇 | 图像去雾卷积DEConv助力yolov11有效涨点(部署零额外开销)

本文介绍了一种最新改进机制用于低层视觉任务的细节增强卷积(DEConv)机制。DEConv在训练阶段采用"普通卷积+差分卷积"的多分支并联结构,增强网络对边缘、纹理等细节特征的学习能力;在推理阶段可折叠为标准3×3卷积,保持与普通卷积相同的计算效率。文中详细阐述了DEConv的工作原理、实现方法以及在YOLOv11中的应用步骤,包括核心代码解析、模型修改方法和训练配置。实验表明,该机制在去雾、去噪、超分等强调细节重建的任务中具有显著优势。文章还提供了完整的代码实现和训练指导.

Snu77的博客 2432

WebSocket(二):传递对象

报错 javax.websocket.EncodeException: No encoder specified for object of class 使用websocket传递对象

肉团子的博客 1万+

Python爬虫实战:利用Requests-HTML与异步技术高效爬取B站视频信息及弹幕数据分析

B站的弹幕,远非简单的评论功能,它是一种独特的、实时互动的社交方式,是观众情感的集体宣泄和共鸣。无论是用于内容创作者优化视频结构,还是用于社会学、传播学的研究,亦或是简单的个人兴趣分析,都具备极高的价值。stop_words = {'的', '了', '是', '我', '你', '他', '她', '它', '在', '有', '不', '吗', '吧', '啊', '这', '那'}本文不仅是代码的堆砌,更注重原理的剖析、反爬策略的应对以及工程化的思考,旨在为读者提供一份紧跟技术前沿的实战指南。

2201_76125261的博客 389

Java-WebSocket通信 实现根据查询条件主动实时回传数据给前端&List<Map<String, Object>>转JSON编码器&WebSocket无法注册Bean问题解决方案

Java环境,Get请求根据前端查询条件建立WebSocket连接,每5秒主动实时推送最新查询结果给前端展示。其中也遇到定时器、WebSocket无法注册Bean、No encoder specified for object of class [class java.util.xxx]等问题解决方案

君琴 的博客 2235

OpenMVS :用 colmap制作自己的数据集 重建(用colmap计算位姿,将位姿转为MVS需要的格式)

数据集制作主要是在windows进行,比较方便。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3325

YOLOv11改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下:详细内容参考:YOLOv11原始模型结构介绍 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检

Limiiiing的博客 8795

GitHub Copilot SDK for Java 企业级 Agent Harness 实战:注解式工具 + 虚拟线程 + BYOK 三件套,让 Java 工程师写 Agent 不再是异类

的定义非常简洁(位于@Retention(RetentionPolicy.SOURCE) // 仅源码期,编译时生成元数据// 工具描述(给 LLM 看)// 工具名(默认使用方法名)// 参数描述(给 LLM 看)注意——这两个注解都只在源码期保留,编译时由注解处理器读取,生成工具元数据类。除了注解风格,SDK 还支持内联 Lambda 工具notifyUi();})// ← 覆盖同名内置工具注意——它告诉 SDK,工具会故意替换同名内置工具。

qq_36021478的博客 404

手把手教你学 AI芯片 SOC软件开发专栏简介

在AI芯片(如NPU、GPU加速器)爆发式增长的今天,软件栈开发已成为AI应用落地的核心瓶颈。无论是模型推理加速、低延迟部署,还是能效优化,都依赖于对芯片底层软件的深度掌握。然而,许多开发者困于“只会调用API,不懂驱动实现”的困境,导致性能瓶颈难以突破。本专栏《手把手教你学 AI芯片 SOC软件开发》专为AI工程师、嵌入式开发者及系统架构师打造,从零基础切入,系统拆解AI芯片SOC(System on Chip)的完整软件栈,覆盖Runtime(运行时)

MHD0815的博客 168

WebSocket使用javax.websocket.RemoteEndpoint.Basic.sendObject(Object arg0)向页面方法发送对象

WebSocket接口中有一个直接发送对象给页面的方法: voidjavax.websocket.RemoteEndpoint.Basic.sendObject(Object arg0) throws IOException,EncodeException 如果直接使用 client.session.getBasicRemote().sendObject(obj); 就会出现以下错误: javax.websocket.EncodeException: No encoder specified fo

诚的博客 1680

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Websocket调sendObject,配置encoder的坑

在使用sendObject的时候,需要在@ServerEndpoint里面指定编码器,编码器的类型和发送的数据类型必须一模一样,子类也不行,不然就会报错。编码器就是把入参转成String返回,websocket好像只能发string类型的数据。

RZ_java的博客 346

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

解决No converter for [class java.util.ArrayList] with preset Content-Type ‘null‘问题

解决No converter for [class java.util.ArrayList] with preset Content-Type 'null'问题。

酷小亚 7702

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

415 记一次对象集合传递错误问题

无语,真的是弄了一个小时 错误原因既然是这个,我没有对ajax有想法,百度才发现没有加contentType所以类型不同报415

寿春 275

SpringBoot集成WebSocket实战一

SpringBoot集成WebSocket实战一1.什么是WebSocket2.为什么要使用WebSocket3.SpringBoot整合WebSocket4. 服务器主动推送数据给前端 1.什么是WebSocket 什么是websocket,百度百科的解释是:"websocket是一种在单个TCP连接上进行全双工通讯的协议,websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在websocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的

静幽水 4201

websocket 发送给前端一个对象_vue中后台websocket发送的数据,前端如何接收和发送数据...

修改两处代码即可使用,一个是请求后台的地址,还有一个是发送给后台的参数,(注意:webstock中只能发送字符串)created() {this.initWebSocket();},destroyed() {this.websock.close();//离开路由之后断开websocket连接},methods: {initWebSocket(){//初始化weosocket(必须)const ws...

weixin_28909779的博客 3219

WebSocket发送与接收数据

除了能发送文本信息和普通对象信息之外,还可以发送ArrayBuffer对象和Blob对象;

mon_star°的博客 2409

WebSocket 快速实操 这篇就够了

WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。它允许服务端主动发送信息给客户端,是实现推送(Push)技术的一种非常流行的解决方案。WebSocket的特点:(1)全双工通信:与传统的HTTP请求-响应不同,WebSocket支持服务器和客户端之间的全双工通信。(2)单连接:WebSocket连接一旦建立,就可以送和接收无数个消息。(3)服务器主动推送:服务器可以主动发送信息给客户端,不需要客户端不断地询问服务器是否有新信息。

制定持续可量化的目标,不断坚持。 2645

消息中间件02:消息协议

消息协议则是指用于实现消息队列功能时所涉及的协议。按照是否向行业开放消息规范文 档,可以将消息协议分为开放协议和私有协议。常见的开放协议有 AMQP、MQTT、 STOMP、XMPP 等。有些特殊框架(如Redis、Kafka、ZeroMQ)根据自身需要未严格遵循MQ规范,而是基于TCP/IP自行封装了一套协议,通过网络Socket接口进行传输,实现了MQ的功能。这里的协议可以简单地理解成对双方通信的一个约定,比如传过来一段字符流数据,其中第1个字节表示什么,第2个字节表示什么,类似这样的约定。如下图常用协

更新失败的博客 485

webSocket使用详情

WebSocket是一种在Web浏览器和服务器之间进行双向通信的协议。它允许在一个持久化的TCP连接上进行实时的、双向通信。WebSocket协议是HTML5中的一项新技术,它可以用于替代传统的轮询和长轮询方法。本文将详细介绍WebSocket的使用方法,并提供代码示例。

世间万物皆不如你 9164

WebSocket-发送对象-自定义Encoder

因最近要交前端结课作业,需要连数据库并一起打包太麻烦! 用Vue写前后端分离又稍显复杂,所以准备在我自己的服务器上放一个 WebSocket 再通过 前端 来建立连接获取 数据 就行了 概述: Websocket发送对象,通过Encoder 自定义规则(转换为JSON字符串),前端收到后再转换为JSON对象 如果不实现并指定Encoder,直接通过 session.getBasicRemote().sendObject(Object object); 发送对象报异常 javax.websocke.

weixin_44216706的博客 4378

springboot websocket发送对象

package com.dmo.parkingServer.common.config; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import javax.websocket.Encoder; import javax.websocket.EndpointConfig; import java.util.Map; /**.

qianhuan_的博客 2105
上一篇: 解决Jmeter在Mac下崩溃、闪退
下一篇: OpenMP并行失效
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值