報錯:
java.lang.NumberFormatException: For input string: "7001@17001"
解決:由於redis集群的采用的版本是4.1的,在maven的pom.xml中將jedis的版本改成2.9的就可以了,
如果報錯依舊,此處有一個大坑。
在buildpath中顯示版本jredis2.9,實際上調用仍為舊版本。
具體可通過在cmd pom.xml文件路徑下執行 mvn dependency:tree 可以查看包依賴結構。
能夠發現實際調用jedis版本仍為舊版本,且此包依賴於commons-pool2包,pool2包版本較低。
在maven調用中,有四個原則:
1.第一聲明優先原則:即在配置文件中先寫的生效.
2.路徑就近原則:即直接依賴優先傳遞依賴.
3.排除原則:傳遞依賴出現問題時,可以如下所寫,排除依賴
<exclusions>
<exclusion>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
</exclusion>
</exclusions>
4.版本鎖定原則:通過dependencyManagement標簽
轉載於:https://my.oschina.net/u/2462104/blog/1815870
根據第二個原則仍是調用了舊版本pool2所要求的jedis版本。
可直接聲明與jredis匹配的新版本commons-pool2來解決這個問題。
具體搭配版本可在mvn官網包下的依賴查看
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${commons-pool2.version}</version>
</dependency>