SpringMVC序列化问题

本文讲述了在基础SSM项目中遇到HTTPStatus500错误,原因在于缺少Jackson序列化依赖。通过添加jackson三件套(core, annotations, databind),成功解决了返回值转换器未找到的问题。
摘要由CSDN通过智能技术生成

问题描述

做练习的时候定义了一个练习的接口,正常情况下应该返回数据。
image-20220302170008547
但是却出现了下面的异常,异常如下:

HTTP Status 500 - No converter found for return value of type: class com.domain.Result
type Exception report
message No converter found for return value of type: class com.domain.Result
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class com.domain.Result
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:226)
.......

image-20220302165839654

解决方式

经过分析,问题是在于没有加载序列化的依赖,因为这个项目是基础的SSM项目,没有Springboot集成,所以出现这个问题的时候我有一丝懵逼,一度怀疑mvc的配置文件没有配置好。

具体的解决方式如下

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.6</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.9.6</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.6</version>
    </dependency>
</dependencies>

添加上jackson三件套就行了。

image-20220302171047937

问题解决。

在Spring MVC中整合RedisTemplate时,如果遇到序列化超时的问题,可以尝试以下几个解决方法: 1. 调整序列化方式:默认情况下,RedisTemplate使用JdkSerializationRedisSerializer作为默认的序列化方式。这种序列化方式可能导致序列化超时问题。可以尝试使用其他序列化方式,如Jackson2JsonRedisSerializer或StringRedisSerializer。 ```java // 使用Jackson2JsonRedisSerializer作为序列化方式 RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(jedisConnectionFactory); redisTemplate.setDefaultSerializer(new Jackson2JsonRedisSerializer<>(Object.class)); ``` 2. 增加超时配置:在配置连接工厂的时候,可以增加超时配置,设置合适的超时时间,确保在序列化过程中不会超时。 ```xml <!-- Redis连接工厂配置 --> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <!-- Redis服务器地址 --> <property name="hostName" value="localhost" /> <!-- Redis服务器端口号 --> <property name="port" value="6379" /> <!-- Redis密码 --> <property name="password" value="password" /> <!-- Redis连接超时时间 --> <property name="timeout" value="5000" /> <!-- Redis连接池 --> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> ``` 3. 检查对象是否可序列化:如果使用自定义的对象进行存储,需要确保这些对象实现了Serializable接口,以便进行正确的序列化。 ```java public class CustomObject implements Serializable { // ... } ``` 通过以上方法,可以尝试解决Spring MVC中RedisTemplate序列化超时的问题。如果问题仍然存在,请提供更多详细信息以便我们能够更好地帮助你解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值