项目中用到了七牛云存储,之前打包部署一直很正常,昨天准备放一版新的上去,结果部署过程没有报错,登录的时候就会报:
javax.servlet.ServletException: Servlet.init() for servlet springServlet threw exception
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1255)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1174)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:847)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
Reason:
Type 'com/qiniu/common/Zone' (current frame, stack[2]) is not assignable to 'com/qiniu/common/Region'
Current Frame:
bci: @54
flags: { }
Bytecode:
0x0000000: 2cc6 000c 2c12 42b6 0043 9900 0612 44b0
0x0000010: 2ab4 0003 2cb6 0004 4e2d b600 45c7 0006
0x0000020: 1246 b02b b600 473a 042b b600 483a 05bb
0x0000030: 0049 59b8 004a b700 4b3a 06bb 004c 5919
0x0000040: 06b7 004d 3a07 124e 3a08 124f 3a09 1250
0x0000050: 3a0a bb00 1b59 b700 1c12 51b6 001e b800
0x0000060: 52b6 001e 1253 b600 1eb6 0022 3a0b 1908
0x0000070: 1909 b800 543a 0c19 0c19 0ab6 0055 3a0d
0x0000080: 1907 1905 190b 190d b600 563a 0ebb 0057
0x0000090: 59b7 0058 190e b600 5912 5ab6 005b c000
0x00000a0: 5a3a 0f2d bb00 1b59 b700 1c12 5cb6 001e
0x00000b0: 190f b400 5db6 001e b600 22b6 005e 2d19
0x00000c0: 0fb4 005f b600 602d bb00 6159 b700 62b6
0x00000d0: 0063 2ab4 0003 2db6 0015 b200 6419 0fb4
于是进行了原因查找,开始有人说是:
项目中使用的jedis版本为
<jedis.version>2.1.0</jedis.version>
在参考国内一篇文章:https://www.cnblogs.com/tv151579/p/6139646.html;
https://stackoverflow.com/questions/22704518/jedispoolconfig-is-not-assignable-to-genericobjectpoolconfig
和他的解决方案后,将jedis.version改为2.4.2,重新运行项目,可以正常启动了
---------------------
作者:dazhong2012
来源:CSDN
原文:https://blog.csdn.net/dazhong2012/article/details/80178663
jedis版本问题
后来七牛那边的客服给了回复:
您好,这个是由于七牛这边升级了最新的7.2.19的sdk,如果不指定version,maven会依赖最新的jar
最新的jar 废了 zone,全部使用 Region,会有冲突
所以在pom文件中把版本号改为
7.2.18
重新打包部署,一切顺利!