Liubsyy / HotSecondsIDEA

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),可以热更新java和常用配置文件,也支持常用框架(Spring,MyBatis)的热更新,相对传统部署可节省大量时间提高开发效率。
GNU General Public License v2.0
381 stars 50 forks source link

linux服务器安装HotSecondsServer后验证报错 #23

Closed jimmie0204 closed 1 year ago

jimmie0204 commented 1 year ago

环境:jdk1.8.0_201 下载的https://github.com/Liubsyy/HotSecondsIDEA/releases/download/libjvm_so/libjvm181.so文件

执行install.sh安装 执行java -XXaltjvm=dcevm -version验证报错。 错误信息: Error: missing dcevm' JVM at/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/dcevm/libjvm.so'. Please install or use the JRE or JDK that contains these missing components

这个是什么原因?

wwxiaoqi commented 1 year ago

手动排查下 /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/dcevm/ 是否存在 libjvm.so 这个文件

jimmie0204 commented 1 year ago

手动排查下 /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/dcevm/ 是否存在 libjvm.so 这个文件

不存在,我配置的JAVA_HOME是/data/jdk,在执行install.sh安装以后,libjvm.so 这个文件也被安装到/data/jdk/jre/lib/amd64/dcevm/ 下面,执行java -XXaltjvm=dcevm -version的时候,却是从 /usr/java/jdk1.8.0_201-amd64这个路径下找libjvm.so 文件。

应该还是环境问题,我执行/data/jdk/bin/java -XXaltjvm=dcevm -version是能正确显示的。

Liubsyy commented 1 year ago

手动排查下 /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/dcevm/ 是否存在 libjvm.so 这个文件

不存在,我配置的JAVA_HOME是/data/jdk,在执行install.sh安装以后,libjvm.so 这个文件也被安装到/data/jdk/jre/lib/amd64/dcevm/ 下面,执行java -XXaltjvm=dcevm -version的时候,却是从 /usr/java/jdk1.8.0_201-amd64这个路径下找libjvm.so 文件。

应该还是环境问题,我执行/data/jdk/bin/java -XXaltjvm=dcevm -version是能正确显示的。

估计是你的java命令并不在$JAVA_HOME/bin目录下,检查一下path环境变量

jimmie0204 commented 1 year ago

手动排查下 /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/dcevm/ 是否存在 libjvm.so 这个文件

不存在,我配置的JAVA_HOME是/data/jdk,在执行install.sh安装以后,libjvm.so 这个文件也被安装到/data/jdk/jre/lib/amd64/dcevm/ 下面,执行java -XXaltjvm=dcevm -version的时候,却是从 /usr/java/jdk1.8.0_201-amd64这个路径下找libjvm.so 文件。 应该还是环境问题,我执行/data/jdk/bin/java -XXaltjvm=dcevm -version是能正确显示的。

估计是你的java命令并不在$JAVA_HOME/bin目录下,检查一下path环境变量

嗯,java命令指向的jdk路径不是项目用的jdk,安装成功了,但是在服务器端运行失败。 增加的JVM启动参数:-XXaltjvm=dcevm -javaagent:/data/HotSecondsServer/HotSecondsServer.jar=hotconf=/data/HotSecondsServer/hot-seconds-remote.xml

“hot-seconds-remote.xml”我没有复制到其他地方,还在/data/HotSecondsServer路径下,这个有啥问题吗?

运行错误信息(WARNING信息): 14-Sep-2023 10:15:10.406 WARNING [main] org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/data/HotSecondsServer/mybatis-3.5.3.jar] from classloader hierarchy java.io.FileNotFoundException: /data/HotSecondsServer/mybatis-3.5.3.jar (No such file or directory) 14-Sep-2023 10:15:10.407 WARNING [main] org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/data/HotSecondsServer/pegdown-1.4.1.jar] from classloader hierarchy java.io.FileNotFoundException: /data/HotSecondsServer/pegdown-1.4.1.jar (No such file or directory)

你server端安装文档第二步写的"将hot-seconds-remote.xml复制到代码的resource目录(随便找个目录都行,记目录为$path2)",两个疑问:1、你说的代码指的是idea里面的项目代码吗?2、hot-seconds-remote.xml需要复制到resource下的随便一个目录,还是说不必是resource下,其他目录下都可以。

Liubsyy commented 1 year ago

任意目录都行,只要hotconf能读取到这个目录就行,报错的WARNING可以不用管不影响启动

jimmie0204 commented 1 year ago

任意目录都行,只要hotconf能读取到这个目录就行,报错的WARNING可以不用管不影响启动

好的,我再试试。 有没有考虑搞个交流群😊

jimmie0204 commented 1 year ago

启动报错,jvm参数:/data/jdk/jre/bin/java -Djava.util.logging.config.file=/data/platform-web-server/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms4096M -Xmx8192M -server -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:+PrintReferenceGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy -XX:+PrintTenuringDistribution -Djava.library.path=/usr/lib/hadoop/lib/native -XX:+UnlockDiagnosticVMOptions -XX:+HeapDumpOnOutOfMemoryError -Dweb.root=/data/platform-web-server/webapps/ROOT/ -verbose:gc -Xloggc:/data/platform-web-server/gc-20230914.txt -XX:HeapDumpPath=/data/platform-web-server/logs/platform-web-server-20230914.hprof -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000 -XXaltjvm=dcevm -javaagent:/data/HotSecondsServer/HotSecondsServer.jar=hotconf=/data/HotSecondsServer/hot-seconds-remote.xml -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /data/platform-web-server/bin/bootstrap.jar:/data/platform-web-server/bin/tomcat-juli.jar -Dcatalina.base=/data/platform-web-server -Dcatalina.home=/data/platform-web-server -Djava.io.tmpdir=/data/platform-web-server/temp org.apache.catalina.startup.Bootstrap start Must use the serial GC in the DCEVM Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.

不支持并行垃圾回收器吗?

Liubsyy commented 1 year ago

不支持,一般情况下没有影响,如果实在需要并行可以去掉-XXaltjvm=dcevm,但是这样不支持新增字段和方法的热更新,其他的功能不影响

jimmie0204 commented 1 year ago

服务端已经运行成功,idea里配置完客户端以后,找一个class文件运行远程部署,报这个错误: hodeployclass,remotePath=null,outPutPath=/Users/jimmie/myNewWorkspaces/server/api/target/classes/,className=xxxx

remotePath已经配置好,这里读取的怎么是null

Liubsyy commented 1 year ago

服务端已经运行成功,idea里配置完客户端以后,找一个class文件运行远程部署,报这个错误: hodeployclass,remotePath=null,outPutPath=/Users/jimmie/myNewWorkspaces/server/api/target/classes/,className=xxxx

remotePath已经配置好,这里读取的怎么是null

class文件可以不填路径映射,显示remotePath=null,说明你的本地路径不对,找不到远程路径

jimmie0204 commented 1 year ago

启动时,spring容器实例化hibernate一些类的时候报错,用的spring5.x,hibernate5.x。 错误日志如下: HOTSECONDS: 17:47:28.870 ERROR InvocationTargetException in transform method on plugin 'class org.hotswap.agent.plugin.hibernate.HibernatePlugin' class 'org/hibernate/validator/internal/metadata/BeanMetaDataManager'. java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:218) at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:112) at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:246) at sun.instrument.TransformerManager.transform(TransformerManager.java:188) at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2470) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:875) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1376) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220) at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38) at org.hibernate.validator.internal.engine.AbstractConfigurationImpl.buildValidatorFactory(AbstractConfigurationImpl.java:451) at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:103) at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:501) at org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:137) at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:300) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:471) at org.hibernate.cfg.Configuration._buildSessionFactory(Configuration.java:728) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:746) at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:616) at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:600) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:766) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:727) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:766) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:727) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:642) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:642) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:410) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1707) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1452) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:921) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:399) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:278) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4494) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4946) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:662) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1184) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1932) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1094) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1617) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:795) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:249) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:922) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:772) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478) Caused by: org.hotswap.agent.javassist.CannotCompileException: [source error] no such field: beanMetaDataCache at org.hotswap.agent.javassist.CtNewMethod.make(CtNewMethod.java:84) at org.hotswap.agent.javassist.CtNewMethod.make(CtNewMethod.java:50) at org.hotswap.agent.plugin.hibernate.HibernateTransformers.beanMetaDataManagerRegisterVariable(HibernateTransformers.java:124) ... 170 more Caused by: compile error: no such field: beanMetaDataCache at org.hotswap.agent.javassist.compiler.MemberResolver.lookupField(MemberResolver.java:321) at org.hotswap.agent.javassist.compiler.MemberResolver.lookupFieldByJvmName(MemberResolver.java:307) at org.hotswap.agent.javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:904) at org.hotswap.agent.javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:831) at org.hotswap.agent.javassist.compiler.TypeChecker.atExpr(TypeChecker.java:605) at org.hotswap.agent.javassist.compiler.ast.Expr.accept(Expr.java:71) at org.hotswap.agent.javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:693) at org.hotswap.agent.javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:170) at org.hotswap.agent.javassist.compiler.ast.CallExpr.accept(CallExpr.java:49) at org.hotswap.agent.javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:266) at org.hotswap.agent.javassist.compiler.CodeGen.atStmnt(CodeGen.java:360) at org.hotswap.agent.javassist.compiler.ast.Stmnt.accept(Stmnt.java:53) at org.hotswap.agent.javassist.compiler.CodeGen.atStmnt(CodeGen.java:381) at org.hotswap.agent.javassist.compiler.ast.Stmnt.accept(Stmnt.java:53) at org.hotswap.agent.javassist.compiler.CodeGen.atMethodBody(CodeGen.java:321) at org.hotswap.agent.javassist.compiler.CodeGen.atMethodDecl(CodeGen.java:303) at org.hotswap.agent.javassist.compiler.ast.MethodDecl.accept(MethodDecl.java:47) at org.hotswap.agent.javassist.compiler.Javac.compileMethod(Javac.java:175) at org.hotswap.agent.javassist.compiler.Javac.compile(Javac.java:102) at org.hotswap.agent.javassist.CtNewMethod.make(CtNewMethod.java:79) ... 172 more

HOTSECONDS: 17:47:29.936 INFO Plugin 'org.hotswap.agent.plugin.hibernate.HibernatePlugin' initialized in ClassLoader 'ParallelWebappClassLoader context: ROOT delegate: false ----------> Parent Classloader: java.net.URLClassLoader@424e1977

jimmie0204 commented 1 year ago

去掉HotSecond这个agent再启动是没问题的