问题
I just imported redisson 1.0.3 via maven, set up a redis-server on localhost on default port and wanted to try the redisson redis client. My test code looks as following:
Redisson redis = Redisson.create();
Map m = redis.getMap("someMap");
But I'm getting:
java.lang.NoSuchFieldError: WRITE_BIGDECIMAL_AS_PLAIN
at org.redisson.codec.JsonJacksonCodec.createObjectMapper(JsonJacksonCodec.java:90)
at org.redisson.codec.JsonJacksonCodec.<init>(JsonJacksonCodec.java:43)
at org.redisson.Config.<init>(Config.java:44)
at org.redisson.Redisson.create(Redisson.java:85)
at ...
As suggested in Redisson: WRITE_BIGDECIMAL_AS_PLAIN I added the dependency:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.3.3</version>
</dependency>
But no change... I guess redisson's dependencies are somehow broken but how can I fix this?
回答1:
It seems like my classpath already contained an older version of jackson, this fixed it:
<!-- Redis deps -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>1.0.3</version>
</dependency>
来源:https://stackoverflow.com/questions/23083940/redisson-nosuchfielderror-write-bigdecimal-as-plain