JRebel 7.x + SpringBoot 1.5.2.RELEASE BUG 启动报错解决方案
JRebel 7.x + SpringBoot 1.5.2.RELEASE BUG 启动报错如下,例如:
2017-03-21 13:40:00 JRebel: ERROR Class 'org.springframework.data.repository.config.CustomRepositoryImplementationDetector' could not be processed by org.zeroturnaround.jrebel.integration.springdata.cbp.CustomRepositoryImplementationDetectorCBP@sun.misc.Launcher$AppClassLoader@18b4aac2: org.zeroturnaround.bundled.javassist.CannotCompileException: [source error] no such field: className
at org.zeroturnaround.bundled.javassist.CtBehavior.insertBefore(SourceFile:774)
at org.zeroturnaround.bundled.javassist.CtBehavior.insertBefore(SourceFile:734)
at org.zeroturnaround.jrebel.integration.springdata.cbp.CustomRepositoryImplementationDetectorCBP.handleDetectCustomImplementation(CustomRepositoryImplementationDetectorCBP.java:27)
at org.zeroturnaround.jrebel.integration.springdata.cbp.CustomRepositoryImplementationDetectorCBP.process(CustomRepositoryImplementationDetectorCBP.java:21)
at org.zeroturnaround.javarebel.integration.support.JavassistClassBytecodeProcessor.process(SourceFile:117)
at com.zeroturnaround.javarebel.sw.a(SourceFile:376)
at com.zeroturnaround.javarebel.sw.a(SourceFile:365)
at com.zeroturnaround.javarebel.sw.a(SourceFile:322)
at com.zeroturnaround.javarebel.SDKIntegrationImpl.runBytecodeProcessors(SourceFile:34)
at com.zeroturnaround.javarebel.ra.transform(SourceFile:105)
at java.lang.ClassLoader.defineClass(ClassLoader.java)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
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)
at org.springframework.data.repository.config.RepositoryBeanDefinitionBuilder.<init>(RepositoryBeanDefinitionBuilder.java:69)
at org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:118)
at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:83)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:352)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:143)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:320)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:686)
at org.springframework.context.support.AbstractApplicationContext.__refresh(AbstractApplicationContext.java:524)
at org.springframework.context.support.AbstractApplicationContext.jrLockAndRefresh(AbstractApplicationContext.java)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
at cn.aicem.console.config.DesignConfig.main(DesignConfig.java:25)
Caused by: compile error: no such field: className
at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.fieldAccess(SourceFile:845)
at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.atFieldRead(SourceFile:803)
at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.atMember(SourceFile:988)
at org.zeroturnaround.bundled.javassist.compiler.JvstTypeChecker.atMember(SourceFile:66)
at org.zeroturnaround.bundled.javassist.compiler.ast.Member.accept(SourceFile:39)
at org.zeroturnaround.bundled.javassist.compiler.JvstTypeChecker.atMethodArgs(SourceFile:221)
at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.atMethodCallCore(SourceFile:735)
at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.atCallExpr(SourceFile:695)
at org.zeroturnaround.bundled.javassist.compiler.JvstTypeChecker.atCallExpr(SourceFile:157)
at org.zeroturnaround.bundled.javassist.compiler.ast.CallExpr.accept(SourceFile:46)
at org.zeroturnaround.bundled.javassist.compiler.CodeGen.doTypeCheck(SourceFile:242)
at org.zeroturnaround.bundled.javassist.compiler.CodeGen.atStmnt(SourceFile:330)
at org.zeroturnaround.bundled.javassist.compiler.ast.Stmnt.accept(SourceFile:50)
at org.zeroturnaround.bundled.javassist.compiler.Javac.compileStmnt(SourceFile:567)
at org.zeroturnaround.bundled.javassist.CtBehavior.insertBefore(SourceFile:754)
... 41 more
寻找思路
官方论坛:https://zeroturnaround.com/forums/topic/jrebel-springboot-1-5-2-release/
官方解决方案
Valerie Avramenko:
We broke some stuff with Spring Boot 1.5.2, but it is already fixed in the Nightly build: https://zeroturnaround.com/software/jrebel/download/nightly-build/ Could you please try it out and let us know if it works as expected now?
官方解决方法(方便被墙的小伙伴)
-
JRebel for IntelliJ IDEA nightly build
-
- Download the JRebel IntelliJ IDEA plugin nightly build.备用百度网盘下载 提取码:84uy
- By downloading you accept EULA terms.
- Open File > Settings. Select Plugins.
- Press Install plugin from disk…
- Browse to the downloaded archive and press OK. Complete the installation.
JRebel for Eclipse nightly build
-
- Help > Install New Software.
- Work with this URL http://update.zeroturnaround.com/update-site-nightly/.
- Complete the plugin installation.
JRebel for NetBeans nightly build
-
- Download the JRebel NetBeans plugin nightly build.
- By downloading you accept EULA terms.
- Open Tools > Plugins.
- Select the Downloaded tab. Press Add Plugins….
- Browse to the downloaded NBM file and press OK.
- Press Install and complete the plugin installation.