nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
在公司framework中定義了springdataredis key及value的序列化方式轨蛤,
public RedisTemplate<Object, Object> redisTemplate(
RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object> ();
template.setConnectionFactory ( redisConnectionFactory );
template.setKeySerializer ( myStringSerializer() );
template.setHashKeySerializer ( myStringSerializer () );
// 使用Jackson2JsonRedisSerialize 替換默認序列化
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility( PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
template.setValueSerializer ( jackson2JsonRedisSerializer );
template.setHashValueSerializer ( jackson2JsonRedisSerializer );
template.afterPropertiesSet ();
return template;
}
測試類運行OK 躬翁,可以修改成功
但是其他項目集成framework永品,項目啟動時報錯 找不到Jackson相關(guān)jar包馋记。
開始查找問題癞埠,開始一直以為是jar包沖突或者版本不對,嘗試了 很多次 都不能解決問題雹仿。
后面直接去解壓已經(jīng)打好的war包勺像,進入lib目錄 查找jackson jar版本時發(fā)現(xiàn) maven并沒有把jackson 相關(guān)jar包加入其中,后面更改pom文件
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.2</version>
<scope>runtime</scope>
</dependency>