当我尝试模拟弹簧服务时,我得到了verifyError
。我检查spock版本和groovy版本,它没有问题。谁能指点我如何解决这个问题?谢谢!
Cglib版本:cglib-nodep-3.2.4.jar
java.lang.VerifyError:class net.sf.cglib.core.DebuggingClassWriter覆盖最终方法访问。(IILjava / lang / String; Ljava / lang / String; Ljava / lang / String; [Ljava / lang / String; )V at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 在java.net.URLClassLoader.access $ 100(URLClassLoader.java:73) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:368) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:362) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在net.sf.cglib.core.AbstractClassGenerator。(AbstractClassGenerator.java:38) at net.sf.cglib.core.KeyFactory $ Generator。(KeyFactory.java:127) 在net.sf.cglib.core.KeyFactory.create(KeyFactory.java:112) 在net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) 在net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) 在net.sf.cglib.proxy.Enhancer。(Enhancer.java:69) 在org.spockframework.mock.runtime.ProxyBasedMockFactory $ CglibMockFactory.createMock(ProxyBasedMockFactory.java:144) 在org.spockframework.mock.runtime.ProxyBasedMockFactory.create(ProxyBasedMockFactory.java:66) 在org.spockframework.mock.runtime.JavaMockFactory.createInternal(JavaMockFactory.java:59) 在org.spockframework.mock.runtime.JavaMockFactory.create(JavaMockFactory.java:40) 在org.spockframework.mock.runtime.CompositeMockFactory.create(CompositeMockFactory.java:44) 在org.spockframework.lang.SpecInternals.createMock(SpecInternals.java:45) 在org.spockframework.lang.SpecInternals.createMockImpl(SpecInternals.java:281) at org.spockframework.lang.SpecInternals.MockImpl(SpecInternals.java:99) at com.example.apiimpl.query.UserAccountAuthQueryServiceSpec.setup(UserAccountAuthQueryServiceSpec.groovy:86)
答案 0 :(得分:1)
cglib不再被主动维护,并且在处理较新的字节代码时存在一些问题。如果您使用较新版本,Spock能够使用Byte Buddy进行代码生成。只需将它放在类路径上即可使用它。