[jRebel] springboot 2.4.0 error

2020-11-23 22:56:58 JRebel: ERROR Class 'org.springframework.web.servlet.handler.AbstractHandlerMethodMapping' could not be processed by org.zeroturnaround.javarebel.integration.spring.cbp.AbstractHandlerMethodMappingCBP@jdk.internal.loader.ClassLoaders$AppClassLoader@2e5c649: org.zeroturnaround.bundled.javassist.CannotCompileException: [source error] getMappings() not found in org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry

at org.zeroturnaround.bundled.javassist.CtNewMethod.make(SourceFile:84)

at org.zeroturnaround.bundled.javassist.CtNewMethod.make(SourceFile:50)

at org.zeroturnaround.javarebel.integration.spring.cbp.AbstractHandlerMethodMappingCBP.implementJrAbstractHandlerMethodMapping(AbstractHandlerMethodMappingCBP.java:263)

at org.zeroturnaround.javarebel.integration.spring.cbp.AbstractHandlerMethodMappingCBP.process(AbstractHandlerMethodMappingCBP.java:60)

at org.zeroturnaround.javarebel.integration.support.JavassistClassBytecodeProcessor.process(SourceFile:136)

at org.zeroturnaround.javarebel.integration.support.CacheAwareJavassistClassBytecodeProcessor.process(SourceFile:34)

at org.zeroturnaround.javarebel.integration.support.JavassistClassBytecodeProcessor.process(SourceFile:82)

at com.zeroturnaround.javarebel.aaa.a(SourceFile:383)

at com.zeroturnaround.javarebel.aaa.a(SourceFile:310)

at com.zeroturnaround.javarebel.SDKIntegrationImpl.runBytecodeProcessors(SourceFile:41)

at com.zeroturnaround.javarebel.xc.transform(SourceFile:132)

at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:43009)

at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)

at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)

at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

at java.base/java.lang.Class.forName0(Native Method)

at java.base/java.lang.Class.forName(Class.java:398)

at com.zeroturnaround.javarebel.xo.a(SourceFile:134)

at com.zeroturnaround.javarebel.xo.a(SourceFile:515)

at com.zeroturnaround.javarebel.xc.transform(SourceFile:148)

at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:43009)

at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)

at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)

at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

at java.base/java.lang.Class.forName0(Native Method)

at java.base/java.lang.Class.forName(Class.java:398)

at com.zeroturnaround.javarebel.xo.a(SourceFile:134)

at com.zeroturnaround.javarebel.xo.a(SourceFile:515)

at com.zeroturnaround.javarebel.xc.transform(SourceFile:148)

at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:43009)

at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)

at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)

at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

at java.base/java.lang.Class.getDeclaredMethods0(Native Method)

at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)

at java.base/java.lang.Class.getDeclaredMethods(Class.java:2309)

at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463)

at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:358)

at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:414)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$2(AbstractAutowireCapableBeanFactory.java:754)

at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:753)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:692)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:663)

at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1665)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:570)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:542)

at org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:238)

at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:231)

at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:221)

at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:169)

at org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:144)

at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)

at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108)

at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:193)

at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:153)

at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129)

at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:348)

at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:252)

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:285)

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:99)

at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:751)

at org.springframework.context.support.AbstractApplicationContext.__refresh(AbstractApplicationContext.java:569)

at org.springframework.context.support.AbstractApplicationContext.jrLockAndRefresh(AbstractApplicationContext.java:40002)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:41008)

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767)

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:326)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298)

at com.study.jpa.DemoApplication.main(DemoApplication.java:10)

Caused by: compile error: getMappings() not found in org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry

at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.atMethodCallCore(SourceFile:777)

at org.zeroturnaround.bundled.javassist.compiler.TypeChecker.atCallExpr(SourceFile:723)

at org.zeroturnaround.bundled.javassist.compiler.JvstTypeChecker.atCallExpr(SourceFile:170)

at org.zeroturnaround.bundled.javassist.compiler.ast.CallExpr.accept(SourceFile:49)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.doTypeCheck(SourceFile:266)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.compileExpr(SourceFile:253)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.atReturnStmnt2(SourceFile:643)

at org.zeroturnaround.bundled.javassist.compiler.JvstCodeGen.atReturnStmnt(SourceFile:443)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.atStmnt(SourceFile:395)

at org.zeroturnaround.bundled.javassist.compiler.ast.Stmnt.accept(SourceFile:53)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.atStmnt(SourceFile:383)

at org.zeroturnaround.bundled.javassist.compiler.ast.Stmnt.accept(SourceFile:53)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.atMethodBody(SourceFile:321)

at org.zeroturnaround.bundled.javassist.compiler.CodeGen.atMethodDecl(SourceFile:303)

at org.zeroturnaround.bundled.javassist.compiler.ast.MethodDecl.accept(SourceFile:47)

at org.zeroturnaround.bundled.javassist.compiler.Javac.compileMethod(SourceFile:175)

at org.zeroturnaround.bundled.javassist.compiler.Javac.compile(SourceFile:102)

at org.zeroturnaround.bundled.javassist.CtNewMethod.make(SourceFile:79)

... 84 more


springboot 최신버전인 2.4.0에서 jrebel 구동시 에러가 나면서 정상동작하지 않는다.


2.2.11.RELEASE 버전에서는 정상동작.. // 신버전에 대한 대응이 좀 느린편이라.. 이걸 계속 써야하는지 의문이다.