Giter Club home page Giter Club logo

arex-agent-java's People

Contributors

danli39 avatar lijing-22 avatar llkkk avatar lucas-myx avatar marco-zheng avatar mengqcc avatar mentosl avatar mokdeve avatar mr3 avatar pangdayuan1 avatar wangyechao avatar yanni97 avatar yanwuqiu avatar yongwuhe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arex-agent-java's Issues

期望增加只回放不录制功能

我的使用场景是UAT环境录制,测试环境回放,两方都需要起agent,测试环境在回放的时候还要重新启动AGENT,并且回放期间不能有任何操作,有操作的话就会导致数据被录进去,从而使测试和UAT环境的录制数据产生冲突。期望增加只回放不录制功能,降低回放时误录进数据的错误概率。

springboot application start with java -jar after attach arex-agent not work

java -jar springboot-test.jar after successful startup,
then use attach to start the arex-agent, some class not transform by agent.
because this way use SpringBoot LaunchedURLClassLoader load classes,
such as org.springframework.web.servlet.DispatcherServlet,
and SpringBoot LaunchedURLClassLoader not delegate to parent class loader,
so AppClassLoader or arex-agent classloader unable to find org.springframework.web.servlet.DispatcherServlet
and not transform this class, or similar errors may occur as follows :

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
        at io.arex.inst.httpclient.apache.common.ApacheHttpClientHelper.ignoreRequest(ApacheHttpClientHelper.java:44)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:157)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)        
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:696)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:779)

In this case you can add to the start parameter -javaagent
like this: java -javaagent:arex-agent.jar -jar springboot-test.jar

If you must use this attach method, you can pay attention to this issue and we will optimize it in the future.

JDK17的应用,回放流量时运行报错。

Bug description
录制的流量,再次回放时报错。

Environment
应用的JDK:JDK17
Compiler: JDK8
arex-agent-java: "0.3.8"

Additional context
程序报错日志

[http-nio-8080-exec-5] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.DynadepClass]]arex replay operation: java.lang.System.currentTimeMillis
[http-nio-8080-exec-5] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.enter]]arex-record-id: AREX-192-168-0-146-338656305, arex-replay-id: AREX-192-168-0-146-3425346311
[http-nio-8080-exec-5] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Database]]arex replay operation: query
[http-nio-8080-exec-5] WARN io.arex.inst.runtime.log.LogManager - [[title=arex.forName]]
java.lang.IllegalAccessError: class io.arex.inst.runtime.util.TypeUtil (in unnamed module @0x71d8cfe7) cannot access class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl (in module java.base) because module java.base does not export sun.reflect.generics.reflectiveObjects to unnamed module @0x71d8cfe7
	at io.arex.inst.runtime.util.TypeUtil.forName(TypeUtil.java:55)
	at io.arex.inst.runtime.serializer.Serializer.deserialize(Serializer.java:151)
	at io.arex.inst.database.common.DatabaseExtractor.replay(DatabaseExtractor.java:59)
	at io.arex.inst.database.mybatis3.InternalExecutor.replay(InternalExecutor.java:20)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:142)
	at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:151)
	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
	at jdk.proxy3/jdk.proxy3.$Proxy257.query(Unknown Source)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at com.company.dep.mybatis.depSqlSessionTemplate$SqlSessionInterceptor.invoke(depSqlSessionTemplate.java:273)
	at jdk.proxy3/jdk.proxy3.$Proxy166.selectList(Unknown Source)
	at com.company.dep.mybatis.depSqlSessionTemplate.selectList(depSqlSessionTemplate.java:93)
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:145)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
	at jdk.proxy3/jdk.proxy3.$Proxy177.listUnexpiredQuotas(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at com.company.dep.mybatis.depMapperProxy.invoke(depMapperProxy.java:106)
	at jdk.proxy3/jdk.proxy3.$Proxy177.listUnexpiredQuotas(Unknown Source)
	at com.company.dep.app.biz.service.impl.depAiQuotaServiceImpl.getQuota(depAiQuotaServiceImpl.java:236)
	at com.company.dep.app.biz.service.impl.depAiQuotaServiceImpl$$FastClassBySpringCGLIB$$1e0966ff.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynadepAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.company.dep.app.biz.service.impl.depAiQuotaServiceImpl$$EnhancerBySpringCGLIB$$bbcbd4a2.getQuota(<generated>)
	at com.company.dep.app.web.service.impl.appRecordServiceImpl.getappUseTimes(appRecordServiceImpl.java:141)
	at com.company.dep.app.web.controller.appRecordController.reappningCount(appRecordController.java:47)
	at com.company.dep.app.web.controller.appRecordController$$FastClassBySpringCGLIB$$a25c5c37.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynadepAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.company.dep.app.web.controller.appRecordController$$EnhancerBySpringCGLIB$$7a1c1c34.reappningCount(<generated>)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.response.post.GTMFilter.doFilter(GTMFilter.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.dep.app.web.config.appContextFilter.doFilterInternal(appContextFilter.java:30)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.context.transmitter.http.TraceLogFilter.doFilter(TraceLogFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.context.transmitter.http.InternationalFilter.doFilter(InternationalFilter.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.context.transmitter.http.UserAccessFlagFilter.doFilter(UserAccessFlagFilter.java:113)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.dep.polyfill.TomcatPolyfillFilter.doFilter(TomcatPolyfillFilter.java:219)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:833)
2023-08-05 22:17:11,035 [http-nio-8080-exec-5] ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet] Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.reflect.UndeclaredThrowableException] with root cause
java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "result" is null
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:150)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:145)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
	at jdk.proxy3/jdk.proxy3.$Proxy177.listUnexpiredQuotas(Unknown Source)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at com.company.dep.mybatis.depMapperProxy.invoke(depMapperProxy.java:106)
	at jdk.proxy3/jdk.proxy3.$Proxy177.listUnexpiredQuotas(Unknown Source)
	at com.company.dep.app.biz.service.impl.depAiQuotaServiceImpl.getQuota(depAiQuotaServiceImpl.java:236)
	at com.company.dep.app.biz.service.impl.depAiQuotaServiceImpl$$FastClassBySpringCGLIB$$1e0966ff.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynadepAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.company.dep.app.biz.service.impl.depAiQuotaServiceImpl$$EnhancerBySpringCGLIB$$bbcbd4a2.getQuota(<generated>)
	at com.company.dep.app.web.service.impl.appRecordServiceImpl.getappUseTimes(appRecordServiceImpl.java:141)
	at com.company.dep.app.web.controller.appRecordController.reappningCount(appRecordController.java:47)
	at com.company.dep.app.web.controller.appRecordController$$FastClassBySpringCGLIB$$a25c5c37.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynadepAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.company.dep.app.web.controller.appRecordController$$EnhancerBySpringCGLIB$$7a1c1c34.reappningCount(<generated>)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.response.post.GTMFilter.doFilter(GTMFilter.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.dep.app.web.config.appContextFilter.doFilterInternal(appContextFilter.java:30)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.context.transmitter.http.TraceLogFilter.doFilter(TraceLogFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.context.transmitter.http.InternationalFilter.doFilter(InternationalFilter.java:73)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.context.transmitter.http.UserAccessFlagFilter.doFilter(UserAccessFlagFilter.java:113)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at com.company.dep.polyfill.TomcatPolyfillFilter.doFilter(TomcatPolyfillFilter.java:219)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:833)
[arex-timer-service-3-thread-1] INFO io.arex.foundation.services.ConfigService - [arex] Report agent status lastModified: null.
request: {"appId":"app-depEN2","host":"192.168.0.146","agentStatus":"WORKING"}

support serialize protobuf dynamic class

when record dynamic class is protobuf occur error
we need support protobuf serialize when dynamic class extends AbstractMessage

Stacktrace as follows:

[http-nio-8080-exec-5] WARN io.arex.foundation.serializer.GsonSerializer - serialize
java.lang.IllegalArgumentException: class RequestConfig declares multiple JSON fields named unknownFields
	at shaded.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:172)
	at shaded.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
	at shaded.com.google.gson.Gson.getAdapter(Gson.java:489)
	at shaded.com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:56)
	at shaded.com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)
	at shaded.com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)
	at shaded.com.google.gson.Gson.toJson(Gson.java:735)
	at shaded.com.google.gson.Gson.toJson(Gson.java:714)
	at shaded.com.google.gson.Gson.toJson(Gson.java:669)
	at shaded.com.google.gson.Gson.toJson(Gson.java:649)
	at io.arex.foundation.serializer.GsonSerializer.serialize(GsonSerializer.java:184)
	at io.arex.inst.runtime.serializer.Serializer.serialize(Serializer.java:59)
	at io.arex.inst.dynamic.common.DynamicClassExtractor.record(DynamicClassExtractor.java:95)
	at io.arex.inst.dynamic.common.DynamicClassExtractor.setResponse(DynamicClassExtractor.java:65)
	at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:331)
	at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)

你好,请问高并发时候,出现的问题,有好的办法使用此工具复现吗?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Query database more times than expected during replay

Bug description
Query database more times than expected during replay, for one time when record but three times when replay.

Steps to reproduce
code:

    @Override
    public String testSubInvokeParams(){
        long id = 2L;
        return getUserById(id).getName()+ "mock";
    }

   @Override
    public User getUserById(Long id){
        User user = new User();
        user.setId(id);
        return userMapper.selectOne(user);
    }

tk.mybatis.mapper.common.base.select.SelectOneMapper#selectOne

record:
image

replay:
image
image

log:

[http-nio-8076-exec-1] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.DynamicClass]]arex replay operation: java.lang.System.currentTimeMillis
[http-nio-8076-exec-1] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.enter]]arex-record-id: AREX-192-168-0-109-4931023370, arex-replay-id: AREX-192-168-0-109-4945562290
[http-nio-8076-exec-1] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.apache.ibatis.executor.BaseExecutor loaded: false from classLoader sun.misc.Launcher$AppClassLoader@18b4aac2
[http-nio-8076-exec-1] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Database]]arex replay operation: query
[http-nio-8076-exec-1] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Servlet]]arex replay operation: /testSubInvokeParams4
[http-nio-8076-exec-2] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.DynamicClass]]arex replay operation: java.lang.System.currentTimeMillis
[http-nio-8076-exec-2] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.enter]]arex-record-id: AREX-192-168-0-109-4931023370, arex-replay-id: AREX-192-168-0-109-4945576581
[http-nio-8076-exec-2] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Database]]arex replay operation: query
[http-nio-8076-exec-2] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Servlet]]arex replay operation: /testSubInvokeParams4
[http-nio-8076-exec-3] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.DynamicClass]]arex replay operation: java.lang.System.currentTimeMillis
[http-nio-8076-exec-3] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.enter]]arex-record-id: AREX-192-168-0-109-4931023370, arex-replay-id: AREX-192-168-0-109-4945579582
[http-nio-8076-exec-3] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Database]]arex replay operation: query
[http-nio-8076-exec-3] INFO io.arex.inst.runtime.log.LogManager - [[title=arex.replay.Servlet]]arex replay operation: /testSubInvokeParams4

Expected behavior
query db once when replay

What went wrong?
query db 3 times when replay (with then same params)

Environment

Compiler: (AdoptOpenJDK)(build 1.8.0_275-b01)
arex-agent-java: (e.g., "0.3.7")

Additional context

Support Apollo Config Framework

Dependency Apollo Version Info:
<groupId>com.ctrip.framework.apollo</groupId>
	<artifactId>apollo</artifactId>
	<version>1.2.7</version>
	<relativePath>../pom.xml</relativePath>
	
Dependency method list:	
	com.ctrip.framework.apollo.ConfigService#getAppConfig
	com.ctrip.framework.apollo.ConfigService#getConfig
	com.ctrip.framework.apollo.Config#getProperty

Non-standard http api cannot get parameters

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.

When the rest api that does not apply to the specification is requested, and the Requestbody is used for parameter binding, the parameters cannot be obtained at this time.

Describe the solution you'd like

In addition to the request-method judgment, the content-type is judged and processed

class init before

source of demand:
the agent will only modify the classes that have been loaded by the classLoader. There are some types in the application that will only be modified when a business request comes in. This will cause this request, the agent is modifying the bytecode, resulting in slower interface response.

solution
Load and modify some known classes in advance. Does not affect normal requests

java.lang.ClassCastException occurs when apache httpclient called

Bug description
java.lang.ClassCastException occurs when apache httpclient called

Steps to reproduce

<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/fluent-hc -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>fluent-hc</artifactId>
    <version>4.5.2</version>
</dependency>

Please provide [GitHub address] to reproduce this issue.

Expected behavior

Don't throw exceptions.

What went wrong?
java.lang.ClassCastException are thrown.

Environment

Compiler: jdk1.8.0_302
arex-agent-java: 0.2.0

Additional context
Add any other context about the problem here.
If there is an exception, please attach the exception trace:

Stacktrace

java.lang.ClassCastException: org.apache.http.client.fluent.InternalHttpRequest cannot be cast to org.apache.http.client.methods.HttpRequestBase
	at io.arex.inst.httpclient.apache.common.ApacheHttpClientAdapter.(ApacheHttpClientAdapter.java:31)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:157)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
	at org.apache.http.client.fluent.Request.internalExecute(Request.java:173)
	at org.apache.http.client.fluent.Request.execute(Request.java:177)

When the return value of Spring RestController is Mono, the request occasionally returns null

RestController method as below, use Mono<ResponseEntity> as return body

public Mono<ResponseEntity<OAuth2AccessToken>> scanTicket(@PathVariable("ticket") String ticket, @RequestParam Map<String, String> parameters)

when i use IDEA to start up my project, use below JVM param, occasionally the response is null

-Darex.service.name=auth-server
-Darex.storage.service.host=10.18.73.234:8093
-javaagent:/Users/marco/Downloads/workspace/arex-agent-java/arex-agent-jar/arex-agent-0.1.0.jar

Expected Behavior

Get valid response like this
image

Current Behavior

Get null response
image

Your Environment

  • Spring boot version: 2.2.6.RELEASE
  • Java Version: 1.8
  • Arex Version: latest

agent端有个报错:throwable: Cannot locate field named commandExe │ │ cutor for class org.redisson.Redisson

现在应用启动失败,能否帮忙确认下是不是由 arex 的这个报错引起的呢?

完整日志打印如下:

main request:

{"appId":"titan-daemon","recordVersion":"0.3.7","host":"192.168.75.88","agentStatus":"START","systemProperties":{"awt.toolkit":"sun.awt.X11.XToolkit","java.specification.version":"11","sun.cpu.isalist":"","sun.jnu.encoding":"UTF-8","java.class.path":"app.jar","project.name":"titan-daemon","arex.service.name":"titan-daemon","java.vm.vendor":"AdoptOpenJDK","sun.arch.data.model":"64","java.vendor.url":"https://adoptopenjdk.net/","user.timezone":"GMT+08","os.name":"Linux","java.vm.specification.version":"11","sun.net.client.defaultReadTimeout":"60000","sun.java.launcher":"SUN_STANDARD","sun.boot.library.path":"/opt/jdk-11.0.11+9/lib","sun.java.command":"app.jar","jdk.debug":"release","arex.agent.version":"0.3.7","sun.cpu.endian":"little","user.home":"/home/work","user.language":"en","java.specification.vendor":"Oracle Corporation","java.version.date":"2021-04-20","java.home":"/opt/jdk-11.0.11+9","spring.profiles.active":"test","arex.rate.limit":"1","file.separator":"/","a
rex.agent.jar.file.path":"/usr/local/arex-agent-0.3.7.jar","java.vm.compressedOopsMode":"32-bit","line.separator":"\n","java.specification.name":"Java Platform API Specification","java.vm.specification.vendor":"Oracle Corporation","java.awt.graphicsenv":"sun.awt.X11GraphicsEnvironment","arex.storage.service.host":"10.244.76.35:8093","sun.management.compiler":"HotSpot 64-Bit Tiered Compilers","arex.allow.time.to":"23:59","java.runtime.version":"11.0.11+9","user.name":"work","sun.net.client.defaultConnectTimeout":"60000","path.separator":":","arex.dynamic.result.size.limit":"1000","java.security.egd":"file:/dev/./urandom","os.version":"5.10.184-175.731.amzn2.x86_64","spring.config.additional-location":"application-addition.properties","java.runtime.name":"OpenJDK Runtime Environment","file.encoding":"UTF-8","server.port":"8080","java.vm.name":"OpenJDK 64-Bit Server VM","java.vendor.version":"AdoptOpenJDK-11.0.11+9","java.vendor.url.bug":"https://github.com/AdoptOpenJDK/openjdk-suppor
t/issues","java.io.tmpdir":"/tmp","java.version":"11.0.11","user.dir":"/app","os.arch":"amd64","java.vm.specification.name":"Java Virtual Machine Specification","java.awt.printerjob":"sun.print.PSPrinterJob","env":"UAT","sun.os.patch.level":"unknown","java.library.path":"/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib","arex.allow.time.from":"00:01","java.vm.info":"mixed mode","java.vendor":"AdoptOpenJDK","java.vm.version":"11.0.11+9","sun.io.unicode.encoding":"UnicodeLittle","java.class.version":"55.0","apollo.meta":"http://apollo-configservice"},"systemEnv":{"CORE_MS_SERVICE_HOST":"10.100.248.78","POST_LOAN_SERVER_SERVICE_HOST":"10.100.119.232","SECURITY_MANAGER_SERVICE_HOST":"10.100.13.89","FLOW_ENGINE_PORT_80_TCP_ADDR":"10.100.187.104","ACCOUNT_CHECK_PORT":"tcp://10.100.44.207:80","COLLATERAL_SERVICE_PORT_HTTP":"80","LOGSTASH_ADDRESS":"logstash-logstash","MERCHANT_FRONTEND_SERVICE_PORT_HTTP":"80","ESIGN_SERVER_SERVICE_PORT_HTTP":"80","RMQNAMESRV_PORT_9876_TCP":"tcp://10.100.68.49:9876","COLLATERAL_SERVICE_PORT":"80","TITAN_ORDER_PORT_28048_TCP_PORT":"28048","CORE_PORTAL_SERVICE_PORT_HTTP":"80","BUSINESS_ESIGN_WEB_PORT_80_TCP_ADDR":"10.100.76.137","MYSQL80_PORT_3306_TCP_PROTO":"tcp","OPEN_PLATFORM_PRE_SERVICE_HOST":"10.100.238.47","CAMUNDA_SERVER_PORT":"tcp://10.100.111.199:80","ACCOUNT_MS_PORT":"tcp://10.100.206.159:80","REDIS40_MASTER_PORT":"tcp://10.100.120.71:6379","COLLATERAL_PORT_80_TCP_PORT":"80","CAMUNDA_SERVER_SERVICE_HOST":"10.100.111.199","INTERNAL_GATEWAY_SERVICE_HOST":"10.100.183.113","REDIS40_MASTER_PORT_6379_TCP":"tcp://10.100.120.71:6379","APOLLO_ENV":"UAT","MOON_SERVER_PORT_80_TCP_ADDR":"10.100.180.116","UNIVERSAL_KIT_SERVICE_PORT":"80","SERVER_CONFIG_PORT_80_TCP_ADDR":"10.100.179.108","AI_PORTAL_PORT_80_TCP":"tcp://10.100.121.150:80","LIMIT_QUOTA_PORT":"tcp://10.100.14.220:80","LOGSTASH_LOGSTASH_SERVICE_PORT":"5960","NODE_IP":"192.168.75.88","PAYMENTS_SERVER_SERVICE_HOST":"10.100.239.92","RMQCONSOLE_PORT_80_TCP_PORT":"80","INTERNAL_GATEWAY_SERVICE_PORT_HTTP":"80","TITAN_FRONTEND_PORT_80_TCP":"tcp://10.100.175.229:80","UNIVERSAL_KIT_PORT_80_TCP_PORT":"80","APPROVE_PORTAL_SERVICE_PORT":"80","XYD_COMPANION_MANAGE_PORT_80_TCP":"tcp://10.100.198.195:80","COOPERATION_BACKEND_PORT"
:"tcp://10.100.253.86:80","TITAN_ORDER_PORT_80_TCP_ADDR":"10.100.7.150","GOVT_REPORTING_SERVICE_PORT":"80","ACCOUNT_PORTAL_PORT_28048_TCP":"tcp://10.100.62.116:28048","TITAN_ORDER_SERVICE_HOST":"10.100.7.150","SC_PRE_LOAN_PORT":"tcp://10.100.50.74:80","ROCKET_PORTAL_SERVER_SERVICE_PORT":"80","XYD_COMPANION_PORT_80_TCP_PORT":"80","ACCOUNT_MS_PORT_80_TCP_ADDR":"10.100.206.159","MONGODB_PORT_27017_TCP_PROTO":"tcp","PORTAL_2_SERVICE_PORT_HTTP":"80","TITAN_DAEMON_SERVICE_PORT":"80","BASE_PORT_80_TCP_ADDR":"10.100.7.112","ESIGN_PORT":"tcp://10.100.103.154:80","CORE_BATCH_PORT_28048_TCP":"tcp://10.100.43.218:28048","SERVER_EUREKA_PORT_80_TCP":"tcp://10.100.75.106:80","SC_PRE_LOAN_PORT_80_TCP_PORT":"80","MYSQL57_PORT_3306_TCP_ADDR":"10.100.7.253","STARROCKS_TEST_SERVICE_HOST":"10.100.139.85","XYD_CONFIG_PORT_80_TCP_PROTO":"tcp","TITAN_DAEMON_PORT_80_TCP_PROTO":"tcp","RMQNAMESRV_PORT_9876_TCP_PROTO":"tcp","TOMCAT_LOG_DIR":"/home/work/log/tomcat_log","CORE_BATCH_SERVICE_PORT_JACOCO":"28048","APPROVE_PORTAL_PORT_80_TCP":"tcp://10.100.217.187:80","LIMIT_QUOTA_SERVICE_PORT_HTTP":"80","CORE_BATCH_PORT_80_TCP_PROTO":"tcp","ROCKET_PORTAL_SERVER_PORT_28048_TCP_PORT":"28048","XYD_COMPANION_SERVICE_PORT_HTTP":"80","COOPERATION_BACKEND_PORT_80_TCP_ADDR":"10.100.253.86","CORE_PORTAL_SERVICE_HOST":"10.100.222.230","TITAN_ORDER_PORT_28048_TCP_PROTO":"tcp","INTERNAL_GATEWAY2_PORT":"tcp://10.100.40.182:80","CORE_MS_SERVICE_PORT_HTTP":"80","APOLLO_CONFIGSERVICE_SERVICE_HOST":"10.100.119.15","ZEUS_GATEWAY_SERVICE_PORT":"80","LIBRE_OFFICE_SERVER_PORT":"tcp://10.100.8.29:80","APOLLO_CONFIGSERVICE_PORT_80_TCP_ADDR":"10.100.119.15","APPROVE_PORTAL_PORT_80_TCP_PORT":"80","AI_PORTAL_SERVICE_HOST":"10.100.121.150","DATARESOURCE_INNER_PORT":"tcp://10.100.53.43:80","ACCOUNT_PORTAL_SERVICE_HOST":"10.100.62.116","ZEUS_GATEWAY_PORT_80_TCP":"tcp://10.100.160.32:80","PAYMENTS_WARN_SERVICE_HOST":"10.100.219.106","GOVT_REPORTING_PORT_80_TCP_PROTO":"tcp","ACQUISITION_BACKEND_SERVICE_HOST":"10.100.17.237","SERVER_CONFIG_PORT_80_TCP_PROTO":"tcp","PINGAN_BANK_FRONT_PORT_7072_TCP_PORT":"7072","LIBRE_OFFICE_SERVER_PORT_80_TCP_PROTO":"tcp","WORK_USER":"work","REDIS_PORT_6379_TCP":"tcp://10.100.241.123:6379","ACCOUNT_MS_SERVICE_PORT":"80","XYD_CONFIG_PORT":"tcp://10.100.208.134:80","EXPORT_MS_PORT_80_TCP":"tcp://10.100.218.51:80","WECHAT_API_PORT_80_TCP_PORT":"80","LOGSTASH_LOGSTASH_PORT_5960_TCP_ADDR":"10.100.168.19","ZHAOHANG_DIRECT_PORT_443_TCP_PORT":"443","POST_LOAN_SERVER_PORT_80_TCP_PROTO":
"tcp","JAVA_OPTS_Metaspace":"-XX:MetaspaceSize=180m -XX:MaxMetaspaceSize=180m","CORE_MS_PORT_80_TCP_ADDR":"10.100.248.78","TITAN_CUSTOMER_PORT_28048_TCP_PROTO":"tcp","MYSQL57_SERVICE_PORT":"3306","XYD_CONFIG_PORT_28048_TCP":"tcp://10.100.208.134:280
48","CORE_PORTAL_PORT_80_TCP_ADDR":"10.100.222.230","XYD_COMPANION_SERVICE_HOST":"10.100.20.46","HOSTNAME":"titan-daemon-deployment-56f694dcbf-4jvvs","COOPERATION_BACKEND_SERVICE_PORT_HTTP":"80","OPEN_PLATFORM_PRE_PORT_80_TCP_ADDR":"10.100.238.47","
XXL_JOB_EXECUTOR_PORT":"28080","LIMIT_QUOTA_PORT_28048_TCP_PROTO":"tcp","SCMERCHANT_FRONTEND_PORT_80_TCP_PROTO":"tcp","SC_PRE_LOAN_SERVICE_PORT":"80","LIMIT_QUOTA_SERVICE_PORT_JACOCO":"28048","PORTAL_2_PORT_80_TCP_PROTO":"tcp","TITAN_CUSTOMER_SERVIC
E_HOST":"10.100.145.161","PAYMENTS_WARN_PORT_80_TCP_PROTO":"tcp","ESIGN_SERVER_PORT":"tcp://10.100.105.65:80","JVM_URL":"https://s3.cn-north-1.amazonaws.com.cn/images.xyd.cn/docker/jvm/OpenJDK11U-jdk_x64_linux_hotspot_11.0.11_9.tar.gz","CORE_BATCH_P
ORT_80_TCP_PORT":"80","SECURITY_MANAGER_SERVICE_PORT_HTTP":"80","ACQUISITION_BACKEND_PORT_80_TCP_PROTO":"tcp","LIMIT_QUOTA_PORT_80_TCP_ADDR":"10.100.14.220","LOGSTASH_LOGSTASH_SERVICE_PORT_JAVA":"5960","TITAN_SERVICE_PORT_80_TCP":"tcp://10.100.189.4
4:80","ACCOUNT_SETTLE_SERVICE_PORT":"80","GOVT_REPORTING_PORT":"tcp://10.100.149.230:80","BUSINESS_ESIGN_WEB_PORT_80_TCP":"tcp://10.100.76.137:80","ROCKET_PORTAL_SERVER_PORT_80_TCP_ADDR":"10.100.254.11","FLOW_ENGINE_SERVICE_HOST":"10.100.187.104","A
POLLO_CONFIGSERVICE_PORT_80_TCP":"tcp://10.100.119.15:80","FRONTEND_PORTAL_PORT_80_TCP_PORT":"80","EXPORT_MS_PORT_28048_TCP_PROTO":"tcp","CORE_PORTAL_PORT_28048_TCP_PROTO":"tcp","SECURITY_MANAGER_PORT_80_TCP_PORT":"80","POST_LOAN_SERVER_PORT_28048_T
CP_PROTO":"tcp","APOLLO_CONFIGSERVICE_PORT_80_TCP_PROTO":"tcp","RULE_MANAGER_SERVICE_PORT":"80","CONTAINER_NAME":"titan-daemon-deployment-56f694dcbf-4jvvs","WECHAT_API_PORT_80_TCP_PROTO":"tcp","STARROCKS_PORT_3306_TCP_ADDR":"10.100.145.1","TITAN_DAE
MON_PORT_28048_TCP_PROTO":"tcp","COOPERATION_BACKEND_SERVICE_PORT":"80","SETTLE_PORTAL_PORT_80_TCP":"tcp://10.100.175.46:80","POST_LOAN_SERVER_PORT_80_TCP_ADDR":"10.100.119.232","LIBRE_OFFICE_SERVER_PORT_80_TCP":"tcp://10.100.8.29:80","CORE_PORTAL_P
ORT_80_TCP_PROTO":"tcp","ESIGN_PORT_80_TCP_ADDR":"10.100.103.154","UNIVERSAL_KIT_PORT":"tcp://10.100.51.37:80","BUSINESS_ESIGN_WEB_PORT":"tcp://10.100.76.137:80","INTERNAL_GATEWAY2_PORT_80_TCP":"tcp://10.100.40.182:80","COOPERATION_BACKEND_PORT_80_T
CP":"tcp://10.100.253.86:80","OPEN_PLATFORM_PRE_SERVICE_PORT_JACOCO":"28048","ACCOUNT_CHECK_PORTAL_PORT":"tcp://10.100.53.192:80","SERVER_EUREKA_SERVICE_PORT":"80","ACCOUNT_CHECK_PORT_28048_TCP_ADDR":"10.100.44.207","DATARESOURCE_INNER_SERVICE_HOST"
:"10.100.53.43","FLOW_ENGINE_PORT":"tcp://10.100.187.104:80","TITAN_CUSTOMER_PORT_80_TCP_PROTO":"tcp","ACCOUNT_MS_PORT_28048_TCP_ADDR":"10.100.206.159","MERCHANT_FRONTEND_PORT_80_TCP_ADDR":"10.100.56.191","ACCOUNT_SETTLE_PORT":"tcp://10.100.64.231:8
0","COOPERATION_FRONTEND_SERVICE_HOST":"10.100.162.50","INTERNAL_GATEWAY_PORT_80_TCP_PROTO":"tcp","ACTIVE":"test","ACCOUNT_PORTAL_PORT_28048_TCP_PORT":"28048","CORE_BATCH_SERVICE_HOST":"10.100.43.218","SCMERCHANT_PORTAL_SERVICE_PORT":"80","LANG":"C.
UTF-8","ZHAOHANG_DIRECT_PORT_443_TCP_PROTO":"tcp","AI_PORTAL_PORT":"tcp://10.100.121.150:80","ZEUS_GATEWAY_PORT_80_TCP_PROTO":"tcp","INTERNAL_GATEWAY2_PORT_80_TCP_ADDR":"10.100.40.182","LIMIT_QUOTA_PORT_28048_TCP_ADDR":"10.100.14.220","FONT_URL":"ht
tps://s3.cn-north-1.amazonaws.com.cn/images.xyd.cn/docker/fonts","PINPOINT_TGZ_URL":"https://s3.cn-north-1.amazonaws.com.cn/images.xyd.cn/docker/pinpoint-agent/pinpoint-agent-2.3.3.tar.gz","NOTIFICATION_SERVICE_PORT_HTTP":"80","DORIS_API_SERVER_SERV
ICE_PORT":"80","ACCOUNT_PORTAL_PORT_80_TCP":"tcp://10.100.62.116:80","ACCOUNT_MS_SERVICE_PORT_JACOCO":"28048","SERVER_CONFIG_SERVICE_HOST":"10.100.179.108","ACCOUNT_MS_PORT_80_TCP_PROTO":"tcp","TITAN_SERVICE_SERVICE_PORT_HTTP":"80","XYD_COMPANION_MANAGE_PORT":"tcp://10.100.198.195:80","OPEN_PLATFORM_PRE_PORT_28048_TCP_ADDR":"10.100.238.47","DATARESOURCE_INNER_PORT_80_TCP_ADDR":"10.100.53.43","TITAN_RELATED_SERVICE_HOST":"10.100.168.214","MOON_SERVER_SERVICE_PORT":"80","REDIS_SERVICE_PORT":"637
9","CORE_MS_PORT":"tcp://10.100.248.78:80","ACCOUNT_PORTAL_SERVICE_PORT_JACOCO":"28048","SCMERCHANT_PORTAL_SERVICE_PORT_HTTP":"80","XYD_COMPANION_PORT_80_TCP_PROTO":"tcp","TITAN_RELATED_PORT_28048_TCP_PORT":"28048","APPLOG_DIR":"/home/work/log/applo
g","TITAN_DAEMON_PORT":"tcp://10.100.63.45:80","NOTIFICATION_SERVICE_HOST":"10.100.231.59","COOPERATION_BACKEND_SERVICE_HOST":"10.100.253.86","ACCOUNT_SETTLE_SERVICE_PORT_JACOCO":"28048","MARKETING_MS_PORT":"tcp://10.100.110.199:80","JACOCO_AGENT_EN
ABLE":"true","UNDERWRITING_NEW_SERVICE_PORT":"80","GOVT_REPORTING_SERVICE_PORT_HTTP":"80","BASE_SERVICE_PORT":"80","APPROVE_PORTAL_PORT_80_TCP_PROTO":"tcp","STARROCKS_PORT":"tcp://10.100.145.1:3306","CAMUNDA_SERVER_PORT_80_TCP_PORT":"80","BASE_PORT_
80_TCP":"tcp://10.100.7.112:80","ACCOUNT_CHECK_PORT_80_TCP_PROTO":"tcp","ZEUS_GATEWAY_PORT_80_TCP_PORT":"80","PINGAN_BANK_FRONT_PORT":"tcp://10.100.168.112:7072","CAMUNDA_SERVER_PORT_80_TCP":"tcp://10.100.111.199:80","TITAN_CUSTOMER_SERVICE_PORT":"8
0","INTERNAL_GATEWAY_PORT_80_TCP":"tcp://10.100.183.113:80","PINPOINT_AGENT_VERSION":"2.3.3","RMQCONSOLE_PORT_80_TCP_PROTO":"tcp","EXPORT_MS_PORT_80_TCP_PORT":"80","COLLATERAL_PORT":"tcp://10.100.126.19:80","SERVER_EUREKA_PORT_80_TCP_ADDR":"10.100.7
5.106","CORE_MS_SERVICE_PORT_JACOCO":"28048","CORE_BATCH_PORT_80_TCP":"tcp://10.100.43.218:80","PAYMENTS_WARN_SERVICE_PORT_HTTP":"80","MONGODB_PORT":"tcp://10.100.227.129:27017","REPORT_PORTAL_SERVICE_PORT_HTTP":"80","ACCOUNT_MS_SERVICE_PORT_HTTP":"
80","NOTIFICATION_PORT_80_TCP_PORT":"80","CORE_MS_PORT_80_TCP":"tcp://10.100.248.78:80","INTERNAL_GATEWAY_PORT_80_TCP_ADDR":"10.100.183.113","PINGAN_BANK_FRONT_SERVICE_PORT":"7072","WECHAT_API_SERVICE_PORT":"80","CORE_BATCH_PORT_80_TCP_ADDR":"10.100
.43.218","TITAN_DAEMON_PORT_28048_TCP":"tcp://10.100.63.45:28048","LIMIT_QUOTA_PORT_28048_TCP_PORT":"28048","UNIVERSAL_KIT_PORT_80_TCP_PROTO":"tcp","WECHAT_API_PORT_80_TCP":"tcp://10.100.119.222:80","OPEN_PLATFORM_PRE_PORT_80_TCP_PROTO":"tcp","STARR
OCKS_SERVICE_PORT":"3306","REDIS40_MASTER_PORT_6379_TCP_PROTO":"tcp","BUSINESS_ESIGN_WEB_SERVICE_PORT":"80","FRONTEND_PORTAL_PORT_80_TCP_PROTO":"tcp","TITAN_CUSTOMER_PORT_28048_TCP_ADDR":"10.100.145.161","MARKETING_MS_SERVICE_PORT_HTTP":"80","RMQNAM
ESRV_PORT_9876_TCP_ADDR":"10.100.68.49","SCMERCHANT_PORTAL_PORT_80_TCP_ADDR":"10.100.253.54","DATARESOURCE_INNER_PORT_80_TCP":"tcp://10.100.53.43:80","REDIS_PORT":"tcp://10.100.241.123:6379","OPEN_PLATFORM_PRE_PORT_80_TCP_PORT":"80","DORIS_API_SERVE
R_PORT":"tcp://10.100.113.86:80","ACCOUNT_MS_PORT_80_TCP":"tcp://10.100.206.159:80","RULE_MANAGER_PORT_80_TCP_ADDR":"10.100.166.36","MOON_SERVER_PORT_28048_TCP_PORT":"28048","RMQNAMESRV_SERVICE_PORT":"9876","ACCOUNT_PORTAL_PORT_28048_TCP_PROTO":"tcp
","REDIS40_MASTER_PORT_6379_TCP_ADDR":"10.100.120.71","WECHAT_API_PORT":"tcp://10.100.119.222:80","TITAN_FRONTEND_PORT":"tcp://10.100.175.229:80","SERVER_EUREKA_SERVICE_PORT_HTTP":"80","TITAN_FRONTEND_PORT_80_TCP_ADDR":"10.100.175.229","RMQCONSOLE_S
ERVICE_PORT":"80","PAYMENTS_SERVER_PORT_80_TCP_ADDR":"10.100.239.92","XYD_COMPANION_MANAGE_SERVICE_PORT_HTTP":"80","ESIGN_SERVER_PORT_80_TCP_PROTO":"tcp","LIMIT_QUOTA_PORT_80_TCP":"tcp://10.100.14.220:80","DATARESOURCE_INNER_SERVICE_PORT_HTTP":"80",
"XXL_JOB_EXECUTOR_LOGRETENTIONDAYS":"7","MERCHANT_FRONTEND_PORT_80_TCP_PROTO":"tcp","TITAN_RELATED_PORT_28048_TCP":"tcp://10.100.168.214:28048","BASE_PORT_80_TCP_PROTO":"tcp","SECURITY_MANAGER_SERVICE_PORT":"80","MONGODB_PORT_27017_TCP_ADDR":"10.100
.227.129","CAMUNDA_SERVER_PORT_28048_TCP_ADDR":"10.100.111.199","TITAN_SERVICE_PORT_80_TCP_ADDR":"10.100.189.44","COOPERATION_FRONTEND_PORT_80_TCP":"tcp://10.100.162.50:80","LIMIT_QUOTA_PORT_80_TCP_PROTO":"tcp","LIBRE_OFFICE_SERVER_PORT_80_TCP_ADDR"
:"10.100.8.29","REPORT_PORTAL_SERVICE_PORT":"80","XYD_COMPANION_MANAGE_SERVICE_PORT":"80","REPORT_PORTAL_PORT_80_TCP_ADDR":"10.100.239.127","COLLATERAL_PORT_80_TCP_PROTO":"tcp","XYD_COMPANION_PORT_28048_TCP_PROTO":"tcp","SC_PRE_LOAN_SERVICE_HOST":"1
0.100.50.74","MARKETING_MS_PORT_80_TCP":"tcp://10.100.110.199:80","KUBERNETES_SERVICE_PORT":"443","ROCKET_PORTAL_SERVER_PORT_28048_TCP_PROTO":"tcp","CORE_BATCH_PORT_28048_TCP_ADDR":"10.100.43.218","ACCOUNT_PORTAL_PORT":"tcp://10.100.62.116:80","RMQC
ONSOLE_PORT":"tcp://10.100.25.28:80","JAVA_LOGBACK_FILE_SIZE":"1024MB","COOPERATION_FRONTEND_PORT_80_TCP_ADDR":"10.100.162.50","ACCOUNT_CHECK_PORT_80_TCP_ADDR":"10.100.44.207","ESIGN_PORT_80_TCP":"tcp://10.100.103.154:80","INTERNAL_GATEWAY2_SERVICE_
HOST":"10.100.40.182","PORTAL_2_PORT_80_TCP":"tcp://10.100.248.159:80","ESIGN_PORT_80_TCP_PORT":"80","ACCOUNT_CHECK_SERVICE_HOST":"10.100.44.207","TITAN_ORDER_SERVICE_PORT_HTTP":"80","TITAN_DAEMON_SERVICE_PORT_JACOCO":"28048","POST_LOAN_SERVER_PORT_
80_TCP":"tcp://10.100.119.232:80","EXPORT_MS_SERVICE_PORT_JACOCO":"28048","TITAN_FRONTEND_SERVICE_HOST":"10.100.175.229","SCMERCHANT_FRONTEND_PORT":"tcp://10.100.236.178:80","CORE_PORTAL_PORT_28048_TCP":"tcp://10.100.222.230:28048","OUTSIDE_SFTP_SER
VICE_PORT":"22","MONGODB_PORT_27017_TCP":"tcp://10.100.227.129:27017","STARROCKS_PORT_3306_TCP_PROTO":"tcp","OUTSIDE_SFTP_PORT":"tcp://10.100.52.119:22","TITAN_CUSTOMER_SERVICE_PORT_HTTP":"80","DORIS_API_SERVER_SERVICE_HOST":"10.100.113.86","XYD_CON
FIG_PORT_80_TCP_PORT":"80","COOPERATION_FRONTEND_PORT_80_TCP_PROTO":"tcp","ACQUISITION_BACKEND_PORT_80_TCP":"tcp://10.100.17.237:80","MERCHANT_FRONTEND_SERVICE_PORT":"80","SANDBOX_ZIP_URL":"https://s3.cn-north-1.amazonaws.com.cn/images.xyd.cn/docker
/jvm-sandbox.zip","TITAN_ORDER_SERVICE_PORT_JACOCO":"28048","LOGSTASH_LOGSTASH_SERVICE_HOST":"10.100.168.19","LIMIT_QUOTA_SERVICE_HOST":"10.100.14.220","RULE_MANAGER_PORT":"tcp://10.100.166.36:80","ZEUS_GATEWAY_SERVICE_PORT_HTTP":"80","ACQUISITION_B
ACKEND_PORT_80_TCP_ADDR":"10.100.17.237","ZHAOHANG_DIRECT_PORT_443_TCP_ADDR":"10.100.25.61","PAYMENTS_SERVER_PORT":"tcp://10.100.239.92:80","ACCOUNT_SETTLE_PORT_80_TCP_PORT":"80","BUSINESS_ESIGN_WEB_SERVICE_PORT_HTTP":"80","STARROCKS_TEST_SERVICE_PO
RT":"3306","MYSQL57_PORT_3306_TCP_PORT":"3306","PAYMENTS_WARN_PORT_80_TCP_ADDR":"10.100.219.106","CACHE_DIR":"/home/work/data","AI_PORTAL_PORT_80_TCP_PORT":"80","SERVER_EUREKA_SERVICE_HOST":"10.100.75.106","POST_LOAN_SERVER_PORT_28048_TCP":"tcp://10
.100.119.232:28048","LIBRE_OFFICE_SERVER_SERVICE_PORT_HTTP":"80","EXPORT_MS_PORT_28048_TCP_ADDR":"10.100.218.51","AREX_SERVER":"10.244.76.35:8093","POST_LOAN_SERVER_PORT_28048_TCP_ADDR":"10.100.119.232","ACCOUNT_CHECK_PORTAL_PORT_80_TCP_ADDR":"10.10
0.53.192","OUTSIDE_SFTP_PORT_22_TCP_ADDR":"10.100.52.119","CORE_BATCH_SERVICE_PORT_HTTP":"80","ROCKET_PORTAL_SERVER_SERVICE_HOST":"10.100.254.11","ROCKET_PORTAL_SERVER_PORT_80_TCP":"tcp://10.100.254.11:80","SCMERCHANT_FRONTEND_SERVICE_PORT":"80","KU
BERNETES_PORT_443_TCP_ADDR":"10.100.0.1","TITAN_ORDER_PORT_28048_TCP_ADDR":"10.100.7.150","SETTLE_PORTAL_PORT_80_TCP_ADDR":"10.100.175.46","TITAN_SERVICE_SERVICE_PORT":"80","ZHAOHANG_DIRECT_SERVICE_HOST":"10.100.25.61","OPEN_PLATFORM_PRE_PORT":"tcp:
//10.100.238.47:80","PAYMENTS_WARN_PORT":"tcp://10.100.219.106:80","CORE_PORTAL_PORT":"tcp://10.100.222.230:80","PAYMENTS_SERVER_PORT_80_TCP":"tcp://10.100.239.92:80","TITAN_FRONTEND_PORT_80_TCP_PROTO":"tcp","RMQCONSOLE_PORT_80_TCP":"tcp://10.100.25
.28:80","PAYMENTS_SERVER_SERVICE_PORT":"80","CONFIG_DIR":"/home/work/config","TITAN_DAEMON_PORT_80_TCP_PORT":"80","POST_LOAN_SERVER_SERVICE_PORT_JACOCO":"28048","SC_PRE_LOAN_PORT_80_TCP_PROTO":"tcp","ESIGN_SERVER_PORT_80_TCP_ADDR":"10.100.105.65","J
VM_HEAP_DUMP_DIR":"/home/work/log/tomcat_log/jvm_heap_dump","XYD_CONFIG_SERVICE_HOST":"10.100.208.134","TOMCAT_MAX_DAYS":"3","ACCOUNT_MS_SERVICE_HOST":"10.100.206.159","FRONTEND_PORTAL_PORT":"tcp://10.100.173.160:80","TITAN_SERVICE_PORT_28048_TCP_PO
RT":"28048","OPEN_PLATFORM_PRE_PORT_28048_TCP_PROTO":"tcp","WECHAT_API_PORT_80_TCP_ADDR":"10.100.119.222","ACQUISITION_BACKEND_SERVICE_PORT_HTTP":"80","ACCOUNT_CHECK_PORTAL_SERVICE_PORT_HTTP":"80","MARKETING_MS_PORT_80_TCP_ADDR":"10.100.110.199","TI
TAN_ORDER_SERVICE_PORT":"80","APOLLO_CONFIGSERVICE_PORT_80_TCP_PORT":"80","CORE_MS_PORT_28048_TCP_ADDR":"10.100.248.78","ACCOUNT_PORTAL_SERVICE_PORT":"80","STARROCKS_TEST_PORT_3306_TCP_ADDR":"10.100.139.85","AWS_ROLE_ARN":"arn:aws-cn:iam::2920370217
98:role/xyd-ec2-test-env","PROJECT_NAME":"titan-daemon","TITAN_DAEMON_PORT_28048_TCP_ADDR":"10.100.63.45","ESIGN_SERVER_PORT_80_TCP":"tcp://10.100.105.65:80","TITAN_RELATED_SERVICE_PORT_HTTP":"80","LIBRE_OFFICE_SERVER_SERVICE_PORT":"80","LOGSTASH_LO
GSTASH_PORT_5960_TCP":"tcp://10.100.168.19:5960","AI_PORTAL_SERVICE_PORT_HTTP":"80","SCMERCHANT_FRONTEND_PORT_80_TCP_PORT":"80","ACCOUNT_SETTLE_PORT_28048_TCP_ADDR":"10.100.64.231","ACCOUNT_CHECK_PORT_28048_TCP":"tcp://10.100.44.207:28048","MARKETIN
G_MS_SERVICE_PORT":"80","MONGODB_SERVICE_HOST":"10.100.227.129","GOVT_REPORTING_PORT_80_TCP_PORT":"80","STARROCKS_TEST_PORT":"tcp://10.100.139.85:3306","EXPORT_MS_PORT_80_TCP_PROTO":"tcp","REDIS_PORT_6379_TCP_PORT":"6379","ESIGN_SERVICE_PORT":"80","
UNIVERSAL_KIT_PORT_80_TCP":"tcp://10.100.51.37:80","WECHAT_API_SERVICE_PORT_HTTP":"80","PAYMENTS_SERVER_PORT_80_TCP_PROTO":"tcp","MYSQL80_SERVICE_HOST":"10.100.3.177","TITAN_CUSTOMER_PORT_80_TCP_PORT":"80","TITAN_RELATED_PORT_80_TCP_PORT":"80","SETT
LE_PORTAL_SERVICE_PORT_HTTP":"80","PATH":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/jdk/bin","ACCOUNT_PORTAL_SERVICE_PORT_HTTP":"80","LIMIT_QUOTA_SERVICE_PORT":"80","SERVER_CONFIG_PORT_80_TCP":"tcp://10.100.179.108:80","BASE_
PORT_80_TCP_PORT":"80","ACQUISITION_BACKEND_PORT_28048_TCP":"tcp://10.100.17.237:28048","TITAN_RELATED_PORT_28048_TCP_PROTO":"tcp","COOPERATION_BACKEND_PORT_80_TCP_PORT":"80","REDIS_PORT_6379_TCP_ADDR":"10.100.241.123","MARKETING_MS_PORT_80_TCP_PROT
O":"tcp","FLOW_ENGINE_SERVICE_PORT":"80","SERVER_EUREKA_PORT":"tcp://10.100.75.106:80","XYD_CONFIG_SERVICE_PORT_JACOCO":"28048","POST_LOAN_SERVER_PORT_80_TCP_PORT":"80","TITAN_ORDER_PORT":"tcp://10.100.7.150:80","FLOW_ENGINE_SERVICE_PORT_HTTP":"80",
"ROCKET_PORTAL_SERVER_SERVICE_PORT_HTTP":"80","ACCOUNT_CHECK_PORTAL_PORT_80_TCP_PROTO":"tcp","CORE_MS_PORT_80_TCP_PORT":"80","RMQCONSOLE_PORT_80_TCP_ADDR":"10.100.25.28","CORE_MS_PORT_28048_TCP":"tcp://10.100.248.78:28048","INTERNAL_GATEWAY2_SERVICE
_PORT_HTTP":"80","UNIVERSAL_KIT_PORT_80_TCP_ADDR":"10.100.51.37","AWS_STS_REGIONAL_ENDPOINTS":"regional","MERCHANT_FRONTEND_SERVICE_HOST":"10.100.56.191","ROCKET_PORTAL_SERVER_PORT_28048_TCP":"tcp://10.100.254.11:28048","ACQUISITION_BACKEND_PORT_280
48_TCP_PORT":"28048","ACCOUNT_PORTAL_PORT_28048_TCP_ADDR":"10.100.62.116","UNDERWRITING_NEW_PORT_80_TCP_ADDR":"10.100.38.120","DATARESOURCE_SERVICE_PORT_HTTP":"80","SCMERCHANT_PORTAL_PORT_80_TCP":"tcp://10.100.253.54:80","ACCOUNT_CHECK_SERVICE_PORT_ JACOCO":"28048","TERM":"xterm","ZHAOHANG_DIRECT_SERVICE_PORT":"443","INTERNAL_GATEWAY2_PORT_80_TCP_PORT":"80","BUSINESS_ESIGN_WEB_PORT_80_TCP_PROTO":"tcp","ESIGN_SERVICE_PORT_HTTP":"80","PORTAL_2_SERVICE_PORT":"80","CORE_PORTAL_PORT_80_TCP_PORT":"80
","JAVA_LOGBACK_TOTAL_SIZE_CAP":"8192MB","COLLATERAL_PORT_80_TCP":"tcp://10.100.126.19:80","CAMUNDA_SERVER_SERVICE_PORT_HTTP":"80","KUBERNETES_PORT_443_TCP_PROTO":"tcp","FRONTEND_PORTAL_SERVICE_PORT":"80","BASE_SERVICE_PORT_HTTP":"80","PINGAN_BANK_F
RONT_PORT_7072_TCP_ADDR":"10.100.168.112","RULE_MANAGER_SERVICE_HOST":"10.100.166.36","NOTIFICATION_PORT":"tcp://10.100.231.59:80","PORTAL_2_PORT_80_TCP_PORT":"80","MOON_SERVER_SERVICE_PORT_HTTP":"80","DORIS_API_SERVER_PORT_80_TCP_PORT":"80","DORIS_
API_SERVER_SERVICE_PORT_HTTP":"80","REDIS_PORT_6379_TCP_PROTO":"tcp","PINPOINT_AGENT_LOGGING_TRANSACTIONINFO":"Undefine","ROCKET_PORTAL_SERVER_PORT":"tcp://10.100.254.11:80","TITAN_RELATED_PORT_80_TCP_ADDR":"10.100.168.214","RMQCONSOLE_SERVICE_PORT_
HTTP":"80","MARKETING_MS_SERVICE_HOST":"10.100.110.199","LIMIT_QUOTA_PORT_80_TCP_PORT":"80","PINGAN_BANK_FRONT_PORT_7072_TCP":"tcp://10.100.168.112:7072","JVM_HEAP_DUMP_ENABLE":"false","SCMERCHANT_FRONTEND_PORT_80_TCP_ADDR":"10.100.236.178","UNDERWR
ITING_NEW_SERVICE_HOST":"10.100.38.120","SCMERCHANT_PORTAL_SERVICE_HOST":"10.100.253.54","ZEUS_GATEWAY_PORT":"tcp://10.100.160.32:80","JAVA_OPTS_RAMPercentage":"-XX:MinRAMPercentage=20.0 -XX:MaxRAMPercentage=50.0 -XX:InitialRAMPercentage=20.0","PAYM
ENTS_WARN_PORT_80_TCP":"tcp://10.100.219.106:80","DONGTAI_AGENT_ENABLE":"false","COOPERATION_FRONTEND_PORT":"tcp://10.100.162.50:80","FRONTEND_PORTAL_PORT_80_TCP_ADDR":"10.100.173.160","ACCOUNT_CHECK_PORTAL_PORT_80_TCP":"tcp://10.100.53.192:80","SER
VER_EUREKA_PORT_80_TCP_PROTO":"tcp","SERVER_CONFIG_SERVICE_PORT":"80","SECURITY_MANAGER_PORT_80_TCP_ADDR":"10.100.13.89","COLLATERAL_PORT_80_TCP_ADDR":"10.100.126.19","ACCOUNT_CHECK_SERVICE_PORT":"80","ESIGN_SERVER_SERVICE_HOST":"10.100.105.65","COR
E_PORTAL_SERVICE_PORT_JACOCO":"28048","REDIS_SERVICE_HOST":"10.100.241.123","MYSQL80_SERVICE_PORT":"3306","COOPERATION_FRONTEND_SERVICE_PORT":"80","MYSQL80_PORT_3306_TCP_ADDR":"10.100.3.177","APPROVE_PORTAL_PORT":"tcp://10.100.217.187:80","DATARESOU
RCE_PORT":"tcp://10.100.69.40:80","ESIGN_SERVICE_HOST":"10.100.103.154","STARROCKS_PORT_3306_TCP_PORT":"3306","UNIVERSAL_KIT_SERVICE_PORT_HTTP":"80","ACCOUNT_SETTLE_SERVICE_PORT_HTTP":"80","HOME":"/home/work","XYD_CONFIG_PORT_80_TCP":"tcp://10.100.2
08.134:80","MOON_SERVER_PORT":"tcp://10.100.180.116:80","CORE_BATCH_PORT_28048_TCP_PROTO":"tcp","UNDERWRITING_NEW_PORT_80_TCP_PROTO":"tcp","SCMERCHANT_PORTAL_PORT":"tcp://10.100.253.54:80","CORE_MS_PORT_28048_TCP_PROTO":"tcp","CORE_PORTAL_PORT_28048
_TCP_PORT":"28048","ACCOUNT_PORTAL_PORT_80_TCP_PORT":"80","DATARESOURCE_PORT_80_TCP_PROTO":"tcp","XYD_COMPANION_MANAGE_PORT_80_TCP_PORT":"80","ACCOUNT_CHECK_PORTAL_SERVICE_PORT":"80","MERCHANT_FRONTEND_PORT_80_TCP_PORT":"80","PAYMENTS_WARN_SERVICE_P
ORT":"80","POST_LOAN_SERVER_SERVICE_PORT":"80","CAMUNDA_SERVER_SERVICE_PORT_JACOCO":"28048","ACQUISITION_BACKEND_PORT_28048_TCP_PROTO":"tcp","ACCOUNT_CHECK_PORT_28048_TCP_PORT":"28048","ACCOUNT_MS_PORT_80_TCP_PORT":"80","KUBERNETES_SERVICE_PORT_HTTP
S":"443","SHLVL":"0","XYD_COMPANION_SERVICE_PORT_JACOCO":"28048","APPROVE_PORTAL_PORT_80_TCP_ADDR":"10.100.217.187","POST_LOAN_SERVER_PORT_28048_TCP_PORT":"28048","JAVA_HOME":"/opt/jdk","TITAN_CUSTOMER_SERVICE_PORT_JACOCO":"28048","XYD_CONFIG_PORT_2
8048_TCP_PORT":"28048","APPROVE_PORTAL_SERVICE_HOST":"10.100.217.187","BUSINESS_ESIGN_WEB_PORT_80_TCP_PORT":"80","SETTLE_PORTAL_SERVICE_HOST":"10.100.175.46","PAYMENTS_SERVER_SERVICE_PORT_HTTP":"80","OPEN_PLATFORM_PRE_PORT_28048_TCP_PORT":"28048","X
YD_COMPANION_MANAGE_PORT_80_TCP_PROTO":"tcp","EXPORT_MS_SERVICE_PORT":"80","SETTLE_PORTAL_PORT_80_TCP_PROTO":"tcp","FLOW_ENGINE_PORT_80_TCP_PROTO":"tcp","CAMUNDA_SERVER_PORT_28048_TCP":"tcp://10.100.111.199:28048","XYD_COMPANION_PORT_28048_TCP_ADDR"
:"10.100.20.46","XYD_CONFIG_SERVICE_PORT":"80","SC_PRE_LOAN_SERVICE_PORT_HTTP":"80","OPEN_PLATFORM_PRE_SERVICE_PORT":"80","RULE_MANAGER_PORT_80_TCP_PROTO":"tcp","MERCHANT_FRONTEND_PORT_80_TCP":"tcp://10.100.56.191:80","REPORT_PORTAL_PORT_80_TCP_PORT
":"80","LOGSTASH_ENABLE":"true","REDIS40_MASTER_SERVICE_HOST":"10.100.120.71","FLOW_ENGINE_PORT_80_TCP_PORT":"80","JAVA_OPTS_Xms":"-XX:MinRAMPercentage=20.0 -XX:MaxRAMPercentage=50.0 -XX:InitialRAMPercentage=20.0","AI_PORTAL_PORT_80_TCP_PROTO":"tcp"
,"DATARESOURCE_PORT_80_TCP":"tcp://10.100.69.40:80","DATARESOURCE_SERVICE_PORT":"80","UNIVERSAL_KIT_SERVICE_HOST":"10.100.51.37","REDIS_SERVICE_PORT_REDIS":"6379","INTERNAL_GATEWAY2_PORT_80_TCP_PROTO":"tcp","LOGSTASH_LOGSTASH_PORT_5960_TCP_PORT":"59
60","KUBERNETES_PORT_443_TCP":"tcp://10.100.0.1:443","INTERNAL_GATEWAY_SERVICE_PORT":"80","ACCOUNT_SETTLE_PORT_28048_TCP":"tcp://10.100.64.231:28048","XYD_COMPANION_SERVICE_PORT":"80","TITAN_CUSTOMER_PORT_28048_TCP":"tcp://10.100.145.161:28048","TIT
AN_RELATED_PORT_80_TCP_PROTO":"tcp","BUSINESS_ESIGN_WEB_SERVICE_HOST":"10.100.76.137","SERVER_CONFIG_PORT_80_TCP_PORT":"80","ZHAOHANG_DIRECT_PORT_443_TCP":"tcp://10.100.25.61:443","TITAN_RELATED_PORT_80_TCP":"tcp://10.100.168.214:80","MOON_SERVER_PO
RT_28048_TCP":"tcp://10.100.180.116:28048","MOON_SERVER_PORT_80_TCP_PORT":"80","CAMUNDA_SERVER_PORT_28048_TCP_PROTO":"tcp","OPEN_PLATFORM_PRE_SERVICE_PORT_HTTP":"80","DATARESOURCE_PORT_80_TCP_PORT":"80","TITAN_ORDER_PORT_80_TCP_PROTO":"tcp","TITAN_F
RONTEND_SERVICE_PORT_HTTP":"80","ZEUS_GATEWAY_PORT_80_TCP_ADDR":"10.100.160.32","PORTAL_2_PORT":"tcp://10.100.248.159:80","INTERNAL_GATEWAY2_SERVICE_PORT":"80","CORE_PORTAL_SERVICE_PORT":"80","TITAN_FRONTEND_SERVICE_PORT":"80","SECURITY_MANAGER_PORT
_80_TCP":"tcp://10.100.13.89:80","OUTSIDE_SFTP_SERVICE_HOST":"10.100.52.119","AI_PORTAL_SERVICE_PORT":"80","ACCOUNT_MS_PORT_28048_TCP":"tcp://10.100.206.159:28048","REPORT_PORTAL_SERVICE_HOST":"10.100.239.127","XYD_CONFIG_PORT_28048_TCP_PROTO":"tcp"
,"COOPERATION_FRONTEND_SERVICE_PORT_HTTP":"80","SETTLE_PORTAL_PORT":"tcp://10.100.175.46:80","POST_LOAN_SERVER_PORT":"tcp://10.100.119.232:80","TITAN_CUSTOMER_PORT_28048_TCP_PORT":"28048","GOVT_REPORTING_PORT_80_TCP":"tcp://10.100.149.230:80","REDIS
40_MASTER_SERVICE_PORT_REDIS":"6379","OUTSIDE_SFTP_PORT_22_TCP_PROTO":"tcp","ACCOUNT_CHECK_PORTAL_SERVICE_HOST":"10.100.53.192","ACCOUNT_CHECK_PORT_80_TCP_PORT":"80","MYSQL57_PORT":"tcp://10.100.7.253:3306","TITAN_FRONTEND_PORT_80_TCP_PORT":"80","TI
TAN_CUSTOMER_PORT_80_TCP":"tcp://10.100.145.161:80","LIMIT_QUOTA_PORT_28048_TCP":"tcp://10.100.14.220:28048","MOON_SERVER_PORT_80_TCP_PROTO":"tcp","DORIS_API_SERVER_PORT_80_TCP_PROTO":"tcp","ACCOUNT_CHECK_PORT_80_TCP":"tcp://10.100.44.207:80","CORE_
MS_PORT_80_TCP_PROTO":"tcp","XYD_CONFIG_PORT_28048_TCP_ADDR":"10.100.208.134","SERVER_CONFIG_PORT":"tcp://10.100.179.108:80","SC_PRE_LOAN_PORT_80_TCP":"tcp://10.100.50.74:80","TITAN_SERVICE_PORT":"tcp://10.100.189.44:80","EXPORT_MS_PORT_28048_TCP_PO
RT":"28048","REDIS40_MASTER_PORT_6379_TCP_PORT":"6379","TITAN_DAEMON_SERVICE_HOST":"10.100.63.45","ACCOUNT_SETTLE_SERVICE_HOST":"10.100.64.231","TITAN_DAEMON_PORT_28048_TCP_PORT":"28048","KUBERNETES_PORT":"tcp://10.100.0.1:443","AWS_DEFAULT_REGION":
"cn-north-1","POST_LOAN_SERVER_SERVICE_PORT_HTTP":"80","TITAN_SERVICE_SERVICE_HOST":"10.100.189.44","SERVER_CONFIG_SERVICE_PORT_HTTP":"80","TITAN_DAEMON_PORT_80_TCP":"tcp://10.100.63.45:80","ACCOUNT_SETTLE_PORT_80_TCP":"tcp://10.100.64.231:80","SCME
RCHANT_FRONTEND_SERVICE_HOST":"10.100.236.178","EXPORT_MS_SERVICE_PORT_HTTP":"80","TITAN_DAEMON_SERVICE_PORT_HTTP":"80","CORE_BATCH_PORT_28048_TCP_PORT":"28048","TITAN_SERVICE_PORT_28048_TCP":"tcp://10.100.189.44:28048","JAVA_VERSION":"11.0.11+9","D
ATARESOURCE_INNER_PORT_80_TCP_PORT":"80","LIBRE_OFFICE_SERVER_PORT_80_TCP_PORT":"80","INIT_CONF_ENABLE":"false","COOPERATION_FRONTEND_PORT_80_TCP_PORT":"80","GOVT_REPORTING_PORT_80_TCP_ADDR":"10.100.149.230","TITAN_SERVICE_PORT_28048_TCP_PROTO":"tcp
","MERCHANT_FRONTEND_PORT":"tcp://10.100.56.191:80","CAMUNDA_SERVER_PORT_28048_TCP_PORT":"28048","UNDERWRITING_NEW_PORT":"tcp://10.100.38.120:80","MONGODB_PORT_27017_TCP_PORT":"27017","CAMUNDA_SERVER_PORT_80_TCP_PROTO":"tcp","ACCOUNT_SETTLE_PORT_80_
TCP_ADDR":"10.100.64.231","TITAN_ORDER_PORT_28048_TCP":"tcp://10.100.7.150:28048","LOGSTASH_LOGSTASH_PORT":"tcp://10.100.168.19:5960","CORE_PORTAL_PORT_28048_TCP_ADDR":"10.100.222.230","TITAN_RELATED_PORT":"tcp://10.100.168.214:80","MOON_SERVER_SERV
ICE_HOST":"10.100.180.116","DATARESOURCE_SERVICE_HOST":"10.100.69.40","SETTLE_PORTAL_PORT_80_TCP_PORT":"80","LIBRE_OFFICE_SERVER_SERVICE_HOST":"10.100.8.29","ACCOUNT_PORTAL_PORT_80_TCP_ADDR":"10.100.62.116","REDIS40_MASTER_SERVICE_PORT":"6379","DATA
RESOURCE_PORT_80_TCP_ADDR":"10.100.69.40","XYD_CONFIG_PORT_80_TCP_ADDR":"10.100.208.134","UNDERWRITING_NEW_SERVICE_PORT_HTTP":"80","XYD_COMPANION_MANAGE_PORT_80_TCP_ADDR":"10.100.198.195","SECURITY_MANAGER_PORT_80_TCP_PROTO":"tcp","ROCKET_PORTAL_SER
VER_PORT_80_TCP_PROTO":"tcp","POD_NAME":"titan-daemon-deployment-56f694dcbf-4jvvs","EXPORT_MS_SERVICE_HOST":"10.100.218.51","BASE_PORT":"tcp://10.100.7.112:80","DATARESOURCE_INNER_PORT_80_TCP_PROTO":"tcp","EXPORT_MS_PORT_28048_TCP":"tcp://10.100.218
.51:28048","TITAN_ORDER_PORT_80_TCP":"tcp://10.100.7.150:80","TITAN_SERVICE_SERVICE_PORT_JACOCO":"28048","ACCOUNT_CHECK_PORTAL_PORT_80_TCP_PORT":"80","AI_PORTAL_PORT_80_TCP_ADDR":"10.100.121.150","ROCKET_PORTAL_SERVER_PORT_80_TCP_PORT":"80","COLLATE
RAL_SERVICE_HOST":"10.100.126.19","REPORT_PORTAL_PORT":"tcp://10.100.239.127:80","APOLLO_CONFIGSERVICE_PORT":"tcp://10.100.119.15:80","APOLLO_CONFIG_SERVICE":"http://apollo-configservice","ACCOUNT_MS_PORT_28048_TCP_PORT":"28048","SCMERCHANT_FRONTEND
_PORT_80_TCP":"tcp://10.100.236.178:80","TITAN_RELATED_SERVICE_PORT":"80","STARROCKS_TEST_PORT_3306_TCP_PROTO":"tcp","XXL_JOB_ADMIN_ADDRESSES":"http://xxl-job-admin/xxl-job-admin","SERVER_EUREKA_PORT_80_TCP_PORT":"80","ACCOUNT_MS_PORT_28048_TCP_PROT
O":"tcp","POD_NAMESPACE":"test-7","ACCOUNT_PORTAL_PORT_80_TCP_PROTO":"tcp","CORE_BATCH_SERVICE_PORT":"80","MYSQL57_PORT_3306_TCP_PROTO":"tcp","XYD_COMPANION_PORT_28048_TCP_PORT":"28048","INTERNAL_GATEWAY_PORT_80_TCP_PORT":"80","NOTIFICATION_PORT_80_
TCP_ADDR":"10.100.231.59","MONGODB_SERVICE_PORT":"27017","STARROCKS_TEST_PORT_3306_TCP":"tcp://10.100.139.85:3306","DATARESOURCE_INNER_SERVICE_PORT":"80","TITAN_SERVICE_PORT_28048_TCP_ADDR":"10.100.189.44","MOON_SERVER_PORT_28048_TCP_ADDR":"10.100.1
80.116","MYSQL57_PORT_3306_TCP":"tcp://10.100.7.253:3306","ESIGN_SERVER_PORT_80_TCP_PORT":"80","TITAN_CUSTOMER_PORT":"tcp://10.100.145.161:80","SCMERCHANT_PORTAL_PORT_80_TCP_PORT":"80","PINGAN_BANK_FRONT_SERVICE_HOST":"10.100.168.112","CORE_MS_PORT_
28048_TCP_PORT":"28048","DORIS_API_SERVER_PORT_80_TCP_ADDR":"10.100.113.86","TITAN_DAEMON_PORT_80_TCP_ADDR":"10.100.63.45","ROCKET_PORTAL_SERVER_SERVICE_PORT_JACOCO":"28048","XYD_COMPANION_PORT_80_TCP_ADDR":"10.100.20.46","ACCOUNT_SETTLE_PORT_80_TCP_PROTO":"tcp","ACCOUNT_CHECK_PORT_28048_TCP_PROTO":"tcp","PORTAL_2_PORT_80_TCP_ADDR":"10.100.248.159","FRONTEND_PORTAL_SERVICE_HOST":"10.100.173.160","SC_PRE_LOAN_PORT_80_TCP_ADDR":"10.100.50.74","MARKETING_MS_PORT_80_TCP_PORT":"80","GOVT_REPORTING_
SERVICE_HOST":"10.100.149.230","PWD":"/app","TITAN_ORDER_PORT_80_TCP_PORT":"80","UNDERWRITING_NEW_PORT_80_TCP":"tcp://10.100.38.120:80","XYD_COMPANION_PORT_80_TCP":"tcp://10.100.20.46:80","PAYMENTS_SERVER_PORT_80_TCP_PORT":"80","ACCOUNT_CHECK_SERVIC
E_PORT_HTTP":"80","ACQUISITION_BACKEND_SERVICE_PORT":"80","TITAN_SERVICE_PORT_80_TCP_PORT":"80","JAVA_LOGBACK_FILE_HISTORY":"7","LOGSTASH_TYPE_NAME":"java-titan-daemon","CORE_MS_SERVICE_PORT":"80","LOGSTASH_PORT":"5960","CAMUNDA_SERVER_SERVICE_PORT"
:"80","XYD_CONFIG_SERVICE_PORT_HTTP":"80","STARROCKS_TEST_PORT_3306_TCP_PORT":"3306","MYSQL80_PORT":"tcp://10.100.3.177:3306","RMQCONSOLE_SERVICE_HOST":"10.100.25.28","LOGSTASH_LOGSTASH_PORT_5960_TCP_PROTO":"tcp","RULE_MANAGER_PORT_80_TCP":"tcp://10
.100.166.36:80","TINI_URL":"https://s3.cn-north-1.amazonaws.com.cn/images.xyd.cn/docker/tini/tini_0.19.0-amd64.rpm","WECHAT_API_SERVICE_HOST":"10.100.119.222","STARROCKS_SERVICE_HOST":"10.100.145.1","EXPORT_MS_PORT":"tcp://10.100.218.51:80","MYSQL80
_PORT_3306_TCP":"tcp://10.100.3.177:3306","CORE_BATCH_PORT":"tcp://10.100.43.218:80","TITAN_CUSTOMER_PORT_80_TCP_ADDR":"10.100.145.161","ACQUISITION_BACKEND_SERVICE_PORT_JACOCO":"28048","OPEN_PLATFORM_PRE_PORT_28048_TCP":"tcp://10.100.238.47:28048",
"ACQUISITION_BACKEND_PORT_80_TCP_PORT":"80","AWS_WEB_IDENTITY_TOKEN_FILE":"/var/run/secrets/eks.amazonaws.com/serviceaccount/token","SCMERCHANT_PORTAL_PORT_80_TCP_PROTO":"tcp","ACCOUNT_SETTLE_PORT_28048_TCP_PORT":"28048","BASE_SERVICE_HOST":"10.100.
7.112","CORE_PORTAL_PORT_80_TCP":"tcp://10.100.222.230:80","NOTIFICATION_SERVICE_PORT":"80","MYSQL80_PORT_3306_TCP_PORT":"3306","TITAN_SERVICE_PORT_80_TCP_PROTO":"tcp","TITAN_RELATED_SERVICE_PORT_JACOCO":"28048","FRONTEND_PORTAL_SERVICE_PORT_HTTP":"
80","RULE_MANAGER_PORT_80_TCP_PORT":"80","PORTAL_2_SERVICE_HOST":"10.100.248.159","NOTIFICATION_PORT_80_TCP_PROTO":"tcp","PAYMENTS_WARN_PORT_80_TCP_PORT":"80","MYSQL57_SERVICE_HOST":"10.100.7.253","ZHAOHANG_DIRECT_PORT":"tcp://10.100.25.61:443","REP
ORT_PORTAL_PORT_80_TCP":"tcp://10.100.239.127:80","XYD_COMPANION_PORT_28048_TCP":"tcp://10.100.20.46:28048","CAMUNDA_SERVER_PORT_80_TCP_ADDR":"10.100.111.199","MOON_SERVER_PORT_28048_TCP_PROTO":"tcp","APOLLO_CONFIGSERVICE_SERVICE_PORT":"80","XXL_JOB
_EXECUTOR_APPNAME":"titan-daemon","FRONTEND_PORTAL_PORT_80_TCP":"tcp://10.100.173.160:80","SECURITY_MANAGER_PORT":"tcp://10.100.13.89:80","ESIGN_SERVER_SERVICE_PORT":"80","AWS_REGION":"cn-north-1","ACQUISITION_BACKEND_PORT_28048_TCP_ADDR":"10.100.17
.237","SETTLE_PORTAL_SERVICE_PORT":"80","COOPERATION_BACKEND_PORT_80_TCP_PROTO":"tcp","MOON_SERVER_PORT_80_TCP":"tcp://10.100.180.116:80","SCMERCHANT_FRONTEND_SERVICE_PORT_HTTP":"80","DORIS_API_SERVER_PORT_80_TCP":"tcp://10.100.113.86:80","XYD_COMPA
NION_PORT":"tcp://10.100.20.46:80","BRANCH_COMMIT_ID":"master@86e2b91c","AREXAGENT":"true","UPLOAD_DIR":"/home/work/data","APPROVE_PORTAL_SERVICE_PORT_HTTP":"80","PINGAN_BANK_FRONT_PORT_7072_TCP_PROTO":"tcp","INTERNAL_GATEWAY_PORT":"tcp://10.100.183
.113:80","TITAN_RELATED_PORT_28048_TCP_ADDR":"10.100.168.214","OUTSIDE_SFTP_PORT_22_TCP":"tcp://10.100.52.119:22","RMQNAMESRV_SERVICE_HOST":"10.100.68.49","NOTIFICATION_PORT_80_TCP":"tcp://10.100.231.59:80","MOON_SERVER_SERVICE_PORT_JACOCO":"28048",
"RULE_MANAGER_SERVICE_PORT_HTTP":"80","STARROCKS_PORT_3306_TCP":"tcp://10.100.145.1:3306","OUTSIDE_SFTP_PORT_22_TCP_PORT":"22","KUBERNETES_SERVICE_HOST":"10.100.0.1","ESIGN_PORT_80_TCP_PROTO":"tcp","ROCKET_PORTAL_SERVER_PORT_28048_TCP_ADDR":"10.100.
254.11","ACCOUNT_SETTLE_PORT_28048_TCP_PROTO":"tcp","EXPORT_MS_PORT_80_TCP_ADDR":"10.100.218.51","ZEUS_GATEWAY_SERVICE_HOST":"10.100.160.32","RMQNAMESRV_PORT":"tcp://10.100.68.49:9876","ACQUISITION_BACKEND_PORT":"tcp://10.100.17.237:80","REPORT_PORT
AL_PORT_80_TCP_PROTO":"tcp","RMQNAMESRV_PORT_9876_TCP_PORT":"9876","OPEN_PLATFORM_PRE_PORT_80_TCP":"tcp://10.100.238.47:80","FLOW_ENGINE_PORT_80_TCP":"tcp://10.100.187.104:80","KUBERNETES_PORT_443_TCP_PORT":"443","UNDERWRITING_NEW_PORT_80_TCP_PORT":
"80","XYD_COMPANION_MANAGE_SERVICE_HOST":"10.100.198.195","RMQNAMESRV_SERVICE_PORT_SERVER":"9876"}}

main response:

{"responseStatusType":{"responseCode":0,"responseDesc":"success","timestamp":1691556721181},"body":{"serviceCollectConfiguration":{"status":null,"modifiedTime":1691118009736,"appId":"titan-daemon","sampleRate":1,"allowDayOfWeeks":127,
"timeMock":true,"allowTimeOfDayFrom":"00:01","allowTimeOfDayTo":"23:59","excludeServiceOperationSet":["/monitor/info"],"recordMachineCountLimit":10,"extendField":null},"dynamicClassConfigurationList":null,"status":3,"targetAddress":"192.168.75.88"}}
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: internal-executors                                                                                        
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: class-loader                                                                                              
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: filter-v3                                                                                                 
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: filter-v5                                                                                                 
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: httpservlet-v3                                                                                            
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: httpservlet-v5                                                                                            
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: apache-httpclient-v4                                                                                      
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: hibernate-v5                                                                                              
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: mybatis-v3                                                                                                
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: jedis-v4                                                                                                  
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: lettuce-v5                                                                                                
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: lettuce-v6                                                                                                
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: redisson-v3                                                                                               
setsysctl + sysctl -w 'net.core.somaxconn=2048'                                                                                                                                                                              
setsysctl net.core.somaxconn = 2048                                                                                                                                                                                          
setsysctl + sysctl -w 'net.ipv4.tcp_max_syn_backlog=4096'                                                                                                                                                                    
setsysctl net.ipv4.tcp_max_syn_backlog = 4096                                                                                                                                                                                
setsysctl + sysctl -w 'net.ipv4.tcp_syncookies=1'                                                                                                                                                                            
setsysctl net.ipv4.tcp_syncookies = 1                                                                                                                                                                                        
setsysctl + sysctl -w 'net.ipv4.tcp_fin_timeout=30'                                                                                                                                                                          
setsysctl net.ipv4.tcp_fin_timeout = 30                                                                                                                                                                                      
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: dynamic-class                                                                                             
main [main] WARN io.arex.agent.instrumentation.InstrumentationInstaller - [arex] invalid instrumentation module: dynamic-class                                                                                               
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: arex-cache             
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: time-machine                                                                                              
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: okhttp                                                                                                    
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: netty-v4.1                                                                                                
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: jwt                                                                                                       
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: dubbo-apache-v2                                                                                           
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: dubbo-apache-v3                                                                                           
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: dubbo-alibaba                                                                                             
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: spring-security                                                                                           
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: webclient-v5                                                                                              
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: shiro                                                                                                     
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: jcasbin                                                                                                   
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] installed instrumentation module: spring-restTemplate                                                                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.ForkJoinTask$AdaptedRunnable loaded: true from classLoader null                                             
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.ForkJoinTask$AdaptedRunnableAction loaded: true from classLoader null                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.ForkJoinTask$RunnableExecuteAction loaded: true from classLoader null                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.ForkJoinTask$AdaptedCallable loaded: true from classLoader null                                             
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.CompletableFuture$Signaller loaded: true from classLoader null                                              
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.CompletableFuture$UniApply loaded: true from classLoader null                                               
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.CompletableFuture$UniCompletion loaded: true from classLoader null                                          
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.FutureTask loaded: true from classLoader null                                                               
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.ThreadPoolExecutor loaded: true from classLoader null                                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.CompletableFuture$Completion loaded: true from classLoader null                                             
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.CompletableFuture$ThreadPerTaskExecutor loaded: true from classLoader null                                  
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.ForkJoinTask loaded: true from classLoader null                                                             
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.AbstractExecutorService loaded: true from classLoader null                                                  
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.time.Instant loaded: true from classLoader null                                                                             
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.time.LocalDate loaded: true from classLoader null                                                                           
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.time.LocalDateTime loaded: true from classLoader null                                                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.time.LocalTime loaded: true from classLoader null                                                                           
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.Date loaded: true from classLoader null                                                                                
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.Calendar loaded: true from classLoader null                                                                            
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.net.URLClassLoader loaded: true from classLoader null                                                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: jdk.internal.loader.ClassLoaders$BootClassLoader loaded: true from classLoader null                                              
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: jdk.internal.loader.ClassLoaders$PlatformClassLoader loaded: true from classLoader null                                          
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: jdk.internal.loader.ClassLoaders$AppClassLoader loaded: true from classLoader null                                               
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: jdk.internal.reflect.DelegatingClassLoader loaded: true from classLoader null                                                    
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.security.SecureClassLoader loaded: true from classLoader null                                                               
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.lang.ClassLoader loaded: true from classLoader null                                                                         
main [main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [AREX] Agent first install successfully.                                                                                                           
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.boot.loader.LaunchedURLClassLoader loaded: false from classLoader jdk.internal.loader.ClassLoaders$AppClassLoader@2c13da15               
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: com.google.common.util.concurrent.AbstractFuture loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044              
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.Executors$FinalizableDelegatedExecutorService loaded: false from classLoader null                           
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: java.util.concurrent.Executors$DelegatedExecutorService loaded: false from classLoader null 
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.codehaus.commons.compiler.util.reflect.ByteArrayClassLoader loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e804
4                                                                                                                                                                                                                            
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.context.support.ContextTypeMatchClassLoader loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e804
4   
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.method.support.InvocableHandlerMethod loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044 
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.client.RestTemplate loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044                   
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.servlet.DispatcherServlet loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044             
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.servlet.FrameworkServlet loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044              
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.servlet.HttpServletBean loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044               
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.filter.CharacterEncodingFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044        
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.filter.OncePerRequestFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044           
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.filter.GenericFilterBean loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044              
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.cache.interceptor.CacheAspectSupport loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044      
main [main] ERROR io.arex.agent.instrumentation.TransformListener - [arex] onError: org.redisson.Redisson loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044, throwable: Cannot locate field named commandExe
cutor for class org.redisson.Redisson                                                                                                                                                                                        
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLo
ader@2b7e8044                                                                                                                                                                                                                
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: com.netflix.hystrix.contrib.sample.stream.HystrixSampleSseServlet loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8
044                                                                                                                                                                                                                          
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: cn.xyd.sdk.annotation.validate.ApiValidator loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044                   
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.filter.RequestContextFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044           
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader
@2b7e8044                                                                                                                                                                                                                    
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.filter.FormContentFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044              
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.boot.web.servlet.filter.OrderedHiddenHttpMethodFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoad
er@2b7e8044                                                                                                                                                                                                                  
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.web.filter.HiddenHttpMethodFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044         
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.boot.web.servlet.filter.OrderedFormContentFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b
7e8044                                                                                                                                                                                                                       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoade
r@2b7e8044                                                                                                                                                                                                                   
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoa
der@2b7e8044                                                                                                                                                                                                                 
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: brave.servlet.TracingFilter loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044       
main [main] INFO io.arex.agent.instrumentation.TransformListener - [arex] onTransformation: org.apache.http.impl.client.InternalHttpClient loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@2b7e8044 

support authentication

The following authentication framework includes authentication and authorization, which need to be supported:

  • spring-security
  • shiro

The following items only has authorization, also need support if used separately:

  • jcasbin
  • JWT
    • java-jwt (com.auth0)
    • jjwt (io.jsonwebtoken)
    • jose4j
    • ...
  • OAuth2.0
    • org.apache.oltu.oauth2

If it is used in combination, it is not necessary, such as:

  • spring-security + jwt + oauth
  • shiro + jwt + oauth

io.lettuce.lettuce-core 包版本冲突,启动应用的时候提示:Caused by: java.lang.ClassNotFoundException: io.lettuce.core.GetExArgs,导致应用启动失败

待测应用使用了io.lettuce.lettuce-core 5.2.2.RELEASE
,arex使用了io.lettuce.lettuce-core 6.1.8.RELEASE ,
启动应用的时候提示:Caused by: java.lang.ClassNotFoundException: io.lettuce.core.GetExArgs,导致应用启动失败。

日志如下:
[main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] onTransformation: io.netty.channel.DefaultChannelPipeline loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@18ea9bec java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:385) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:372) at io.netty.bootstrap.Bootstrap.init(Bootstrap.java:265) at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:321) at io.netty.bootstrap.Bootstrap.doResolveAndConnect(Bootstrap.java:163) at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:145) at io.lettuce.core.AbstractRedisClient.initializeChannelAsync0(AbstractRedisClient.java:313) at io.lettuce.core.AbstractRedisClient.lambda$initializeChannelAsync$0(AbstractRedisClient.java:294) at reactor.core.publisher.LambdaMonoSubscriber.onNext(LambdaMonoSubscriber.java:137) at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192) at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192) at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:61) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) at reactor.core.publisher.MonoPeek.subscribe(MonoPeek.java:71) at reactor.core.publisher.MonoPeek.subscribe(MonoPeek.java:71) at reactor.core.publisher.MonoPeek.subscribe(MonoPeek.java:71) at reactor.core.publisher.Mono.subscribe(Mono.java:3694) at reactor.core.publisher.Mono.subscribeWith(Mono.java:3800) at reactor.core.publisher.Mono.subscribe(Mono.java:3688) at reactor.core.publisher.Mono.subscribe(Mono.java:3655) at reactor.core.publisher.Mono.subscribe(Mono.java:3627) at io.lettuce.core.AbstractRedisClient.initializeChannelAsync(AbstractRedisClient.java:289) at io.lettuce.core.RedisClient.doConnectSentinelAsync(RedisClient.java:611) at io.lettuce.core.RedisClient.lambda$connectSentinelAsync$8(RedisClient.java:553) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44) at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44) at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44) at reactor.core.publisher.MonoPeek.subscribe(MonoPeek.java:71) at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44) at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44) at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44) at reactor.core.publisher.Mono.subscribe(Mono.java:3694) at reactor.core.publisher.Mono.subscribeWith(Mono.java:3800) at reactor.core.publisher.Mono.toFuture(Mono.java:4134) at io.lettuce.core.RedisClient.connectSentinelAsync(RedisClient.java:583) at io.lettuce.core.RedisClient.connectSentinelAsync(RedisClient.java:527) at io.lettuce.core.masterslave.SentinelTopologyProvider.getNodesAsync(SentinelTopologyProvider.java:93) at io.lettuce.core.masterslave.MasterSlaveTopologyRefresh.getNodes(MasterSlaveTopologyRefresh.java:70) at io.lettuce.core.masterslave.SentinelConnector.connectAsync(SentinelConnector.java:66) at io.lettuce.core.masterslave.MasterSlave.connectAsyncSentinelOrAutodiscovery(MasterSlave.java:152) at io.lettuce.core.masterslave.MasterSlave.connect(MasterSlave.java:120) at com.alicp.jetcache.autoconfigure.RedisLettuceAutoConfiguration$RedisLettuceAutoInit.initCache(RedisLettuceAutoConfiguration.java:78) at com.alicp.jetcache.autoconfigure.AbstractCacheAutoInit.process(AbstractCacheAutoInit.java:71) at com.alicp.jetcache.autoconfigure.AbstractCacheAutoInit.afterPropertiesSet(AbstractCacheAutoInit.java:52) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1821) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1758) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:307) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:224) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1115) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:407) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:341) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:335) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1123) at com.alicp.jetcache.anno.aop.JetCacheInterceptor.invoke(JetCacheInterceptor.java:37) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at com.zuzuche.jccrc.depositservice.core.repository.impl.SystemConfigTblRepoImpl$$EnhancerBySpringCGLIB$$af6d8a90.getOneSystemConfigTblByKeyCache(<generated>) at com.zuzuche.jccrc.depositservice.core.service.impl.SystemConfigTblServiceImpl.getBusinessTypeOrChannel(SystemConfigTblServiceImpl.java:122) at com.zuzuche.jccrc.depositservice.core.service.impl.SystemConfigTblServiceImpl.initBusinessTypeMappingBusinessNameCn(SystemConfigTblServiceImpl.java:72) 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.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:363) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:307) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:414) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1754) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1247) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1395) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1247) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1395) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:592) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:849) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at com.zuzuche.jccrc.depositservice.DepositServiceApplication.main(DepositServiceApplication.java:36) 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.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) Caused by: java.lang.ClassNotFoundException: io.netty.handler.codec.http.HttpRequestDecoder at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 127 more java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:195) at io.lettuce.core.PlainChannelInitializer.initChannel(PlainChannelInitializer.java:65) at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:989) at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:610) at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1461) at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1126) at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:651) at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:427) at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:385) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:372) at io.lettuce.core.PlainChannelInitializer.initChannel(PlainChannelInitializer.java:124) at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:989) at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:610) at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1461) at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1126) at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:651) at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:427) at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:385) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:372) at io.lettuce.core.PlainChannelInitializer.initChannel(PlainChannelInitializer.java:124) at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:989) at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:610) at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1461) at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1126) at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:651) at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:427) at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:385) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:372) at io.lettuce.core.PlainChannelInitializer.initChannel(PlainChannelInitializer.java:124) at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:989) at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:610) at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1461) at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1126) at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:651) at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:427) at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:385) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:372) at io.lettuce.core.PlainChannelInitializer.initChannel(PlainChannelInitializer.java:124) at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:989) at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:610) at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1461) at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1126) at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:651) at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:427) at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) java.lang.NoClassDefFoundError: io/netty/handler/codec/http/HttpRequestDecoder at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:224) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:385) at io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:372) at io.lettuce.core.PlainChannelInitializer.initChannel(PlainChannelInitializer.java:124) at io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129) at io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112) at io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:989) at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:610) at io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46) at io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1461) at io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1126) at io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:651) at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514) at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:427) at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) 2023-05-15 10:38:15.075 [lettuce-nioEventLoop-4-1] ERROR r.c.p.Operators - Operator called default onErrorDropped java.lang.NoClassDefFoundError: io/lettuce/core/GetExArgs at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at io.lettuce.core.internal.AbstractInvocationHandler$MethodTranslator.createMethodMap(AbstractInvocationHandler.java:186) at io.lettuce.core.internal.AbstractInvocationHandler$MethodTranslator.<init>(AbstractInvocationHandler.java:163) at io.lettuce.core.internal.AbstractInvocationHandler$MethodTranslator.lambda$of$0(AbstractInvocationHandler.java:169) at java.util.Map.computeIfAbsent(Map.java:957) at io.lettuce.core.internal.AbstractInvocationHandler$MethodTranslator.of(AbstractInvocationHandler.java:169) at io.lettuce.core.FutureSyncInvocationHandler.<init>(FutureSyncInvocationHandler.java:47) at io.lettuce.core.RedisChannelHandler.syncHandler(RedisChannelHandler.java:317) at io.lettuce.core.StatefulRedisConnectionImpl.newRedisSyncCommandsImpl(StatefulRedisConnectionImpl.java:89) at io.lettuce.core.StatefulRedisConnectionImpl.<init>(StatefulRedisConnectionImpl.java:74) at io.lettuce.core.RedisClient.newStatefulRedisConnection(RedisClient.java:711) at io.lettuce.core.RedisClient.connectStandaloneAsync(RedisClient.java:273) at io.lettuce.core.RedisClient.connectAsync(RedisClient.java:255) at io.lettuce.core.masterslave.RedisClientNodeConnectionFactory.connectToNodeAsync(RedisClientNodeConnectionFactory.java:40) at io.lettuce.core.masterslave.MasterSlaveTopologyRefresh.getConnections(MasterSlaveTopologyRefresh.java:105) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:107) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoCompletionStage.lambda$subscribe$0(MonoCompletionStage.java:82) at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750) at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488) at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1975) at reactor.core.publisher.MonoToCompletableFuture.onNext(MonoToCompletableFuture.java:57) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:241) at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:123) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:147) at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) at reactor.core.publisher.MonoDoFinallyFuseable.subscribe(MonoDoFinallyFuseable.java:48) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.onNext(FluxTimeout.java:173) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:247) at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:329) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505) at reactor.core.publisher.MonoCollectList$MonoBufferAllSubscriber.onComplete(MonoCollectList.java:118) at io.lettuce.core.RedisPublisher$ImmediateSubscriber.onComplete(RedisPublisher.java:895) at io.lettuce.core.RedisPublisher$State.onAllDataRead(RedisPublisher.java:673) at io.lettuce.core.RedisPublisher$State$3.read(RedisPublisher.java:587) at io.lettuce.core.RedisPublisher$State$3.onDataAvailable(RedisPublisher.java:544) at io.lettuce.core.RedisPublisher$RedisSubscription.onDataAvailable(RedisPublisher.java:313) at io.lettuce.core.RedisPublisher$RedisSubscription.onAllDataRead(RedisPublisher.java:328) at io.lettuce.core.RedisPublisher$SubscriptionCommand.complete(RedisPublisher.java:758) at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:59) at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:654) at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:614) at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:565) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.ClassNotFoundException: io.lettuce.core.GetExArgs at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 81 common frames omitted

Support hibernate 3.x mock

Currently, the hibernate version supported by arex is 5.x or higher, and later versions such as 3.6.0 final need to be supported

[NOSQL-mock-support]

Background:

In some cases, we use NOSQL DB like Hbase , mongo ,ES to store heterogeneous or large data.
But mock read/white access in NOSQL DB like Hbase with no data corruption is not currently supported in Arex.
Thus replaying requests in NOSQL access is sometimes inconvenient.

Demand:

  • Capable in MOCK NOSQL DB access.
  • Record NOSQL DB connection, setting Objects.
  • No data corruption

IN Relational DB:

Arex provided powerful mock ability such as collecting the sql used to access the database, and the sql collected is used when
comparing recorded and replayed requests.Thus avoiding data corruption.

IN NOSQL DB :

Nosql like Hbase is not commonly used. But can we mock responses in accessing Hbase (or any other NOSQL db access)?
most of those responses are in the terms of interfaces , and in Json types.

HARD THING:

For white access, the hardest thing is about no data corruption. As is reminded in nomal DB part,this is solved
in sql collecting way. IN NOSQL DB ,can we build a solution by collecting Objects ?
such as the set code:
config.set(HConstants.ZOOKEEPER_QUORUM, "192.168.187.201") config.set(HConstants.ZOOKEEPER_CLIENT_PORT, "2181") config.setInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 30000) config.setInt(HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD, 30000)
Json code:
{ "ZOOKEEPER_QUORUM": "192.168.187.201", "ZOOKEEPER_CLIENT_PORT":"2181", "HBASE_CLIENT_OPERATION_TIMEOUT":30000, "HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD":30000 }

Or simply skip the MOCK part , just compare the interface reponses?

arex-agent build fail

BUILD FAILURE
[INFO] arex-dubbo ......................................... FAILURE [ 0.636 s]
[INFO] arex-spring-security ............................... SKIPPED
[INFO] arex-httpclient-webclient-v5 ....................... SKIPPED
[INFO] arex-shiro ......................................... SKIPPED
[INFO] arex-jcasbin ....................................... SKIPPED
[INFO] arex-agent ......................................... SKIPPED
[INFO] arex-jedis-v2 ...................................... SKIPPED
[INFO] arex-attacher ...................................... SKIPPED
[INFO] arex-integration-tests ............................. SKIPPED
[INFO] arex-common-integration-test ....................... SKIPPED
[INFO] arex-main-integration-test ......................... SKIPPED
[INFO] arex-dynamic-integration-test ...................... SKIPPED
[INFO] arex-jedis-v4-integration-test ..................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.626 s
[INFO] Finished at: 2023-05-30T20:33:33+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (default-testCompile) on project arex-dubbo: Compilation failure
[ERROR] /Users/xxx/xxx/arex/arex-agent-java/arex-instrumentation/dubbo/arex-dubbo/src/test/java/io/arex/inst/dubbo/stream/DubboStreamConsumerExtractorTest.java:[137,40] 无法访问io.netty.util.AbstractReferenceCounted
[ERROR] 找不到io.netty.util.AbstractReferenceCounted的类文件
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :arex-dubbo

2022 Q2 Roadmap

Version: 0.5

  • Instrumentation: jedis2
  • Instrumentation: redission
  • Instrumentation: lettuce
  • Instrumentation: okhttp 2/3
  • Instrumentation: dynamic type
  • Instrumentation: gRPC (low priority)
  • Instrumentation: Servlet3, Servlet5
  • Instrumentation: Time machine (low priority)
  • Framework: Ignore
  • CLI: Config

okhttp 3.8.1 暂时不支持mock

Bug description
调用应用A的接口,应用A中 https://github.com/OpenFeign/feign (底层封装的okhttp)使用feign调用应用b的接口,进行录制,回放时没有走mock,反而调用了实际接口
0aab8b66deaf6abdd5cee8c1a3ef101

ecd40c3bb62227f6155b2e048f69285
41d9e08d6e99c216923a62b6ef0ef58

Steps to reproduce
If possible, provide a recipe for reproducing the error.

Please provide [GitHub address] to reproduce this issue.

Expected behavior

What should happen? / What did you expect?

What went wrong?
What happened instead? What error message did you get?

Environment

Compiler: (e.g., "AdoptOpenJDK 1.8.0")
arex-agent-java: (e.g., "0.2.0")

Additional context
Add any other context about the problem here.
If there is an exception, please attach the exception trace:

Just put your stack trace here!

通过指定arex.agent.conf配置文件时 arex.storage.model未生效

复现步骤:

1、如图所示设置arex.agent.conf文件,指定arex.storage.model=local
image
2、启动服务

java -javaagent:./arex-agent-0.0.1.jar -Darex.config.path=./arex.agent.conf -jar spring-petclinic-2.7.0-SNAPSHOT.jar

期望结果:

mode类型为local

实际结果:

image

临时解决方法:

在命令行 增加 arex.stroage.model=local

java -javaagent:./arex-agent-0.0.1.jar -Darex.storage.model=local -Darex.config.path=./arex.agent.conf -jar spring-petclinic-2.7.0-SNAPSHOT.jar

There is a problem with serializing parameters using the tkmybatis framework

Bug description
There is a problem with serializing parameters using the tkmybatis framework.

Steps to reproduce
When we use the tkmybatis framework to query and use Example (user entity class) as the query condition to serialize, a stack overflow will occur.

Example example = new Example(Order.class);
.....condition....
ist<Order> list = orderMapper.selectByExample(example);

Expected behavior

return normal

What went wrong?
What happened instead? What error message did you get?

Environment

Compiler: openjdk 1.8
arex-agent-java:"0.2.0"

Additional context
Add any other context about the problem here.
If there is an exception, please attach the exception trace:

*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704476406Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704515283Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704524573Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704532267Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704539499Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704546602Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704553798Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704579057Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704586619Z *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at JPLISAgent.c line: 844
2023-04-27T04:42:28.704593990Z [http-nio-8011-exec-8] WARN io.arex.foundation.serializer.JacksonSerializer - jackson-serialize
2023-04-27T04:42:28.704634307Z com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAut2023-04-27T04:42:28.704634307Z hor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybati2023-04-27T04:42:28.704634307Z s.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"]->java.util.HashMap["createAuthor"]->tk.mybatis.mapper.entity.EntityColumn["table"]->tk.mybatis.mapper.entity.EntityTable["propertyMap"])
2023-04-27T04:42:28.705162536Z 	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:789)
2023-04-27T04:42:28.705171063Z 	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
2023-04-27T04:42:28.705177780Z 	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)
2023-04-27T04:42:28.705184889Z 	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)
2023-04-27T04:42:28.705284587Z 	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
2023-04-27T04:42:28.705293593Z 	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:808)
2023-04-27T04:42:28.705300654Z 	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:764)
2023-04-27T04:42:28.705308467Z 	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:720)
2023-04-27T04:42:28.705365887Z 	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:35)
2023-04-27T04:42:28.705373814Z 	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)
2023-04-27T04:42:28.705381026Z 	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)
2023-04-27T04:42:28.705388139Z 	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
2023-04-27T04:42:28.705395052Z 	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)
2023-04-27T04:42:28.705402084Z 	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)

Support lettuce-core 5.x

Is your feature request related to a problem? Please describe.
Compatible with lettuce version 5.3.7.RELEASE(The latest)

<!-- https://mvnrepository.com/artifact/io.lettuce/lettuce-core -->
<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>5.3.7.RELEASE</version>
</dependency>

Describe the solution you'd like
Implementation can be referred to arex-lettuce-v6

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

使用0.3.0版本的Agent无法启动项目

Bug description
使用0.3.0版本的Agent无法启动项目

Steps to reproduce
1.不加载agent项目启动成功,加载agent项目启动失败

Expected behavior
1.启动加载agent项目运行成功
What went wrong?
1.项目启动失败
Environment
java version: 1.8.0_281
arex-agent-java: 0.3.0

Additional context
Add any other context about the problem here.
If there is an exception, please attach the exception trace:

Just put your stack trace here!

异常信息如下:
[main] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] onTransformation: com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5c448433
java.lang.NullPointerException
        at java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source)
        at java.util.concurrent.ConcurrentHashMap.put(Unknown Source)
        at io.arex.agent.bootstrap.internal.WeakCache.put(WeakCache.java:31)
        at java.util.concurrent.ForkJoinTask.<init>(Unknown Source)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask.<init>(BoundedLocalCache.java:3273)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.<init>(BoundedLocalCache.java:239)
        at com.github.benmanes.caffeine.cache.SS.<init>(SS.java:32)
        at com.github.benmanes.caffeine.cache.SSMS.<init>(SSMS.java:66)
        at com.github.benmanes.caffeine.cache.SSMSW.<init>(SSMSW.java:42)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.github.benmanes.caffeine.cache.LocalCacheFactory.newBoundedLocalCache(LocalCacheFactory.java:98)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3357)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3353)
        at com.github.benmanes.caffeine.cache.Caffeine.build(Caffeine.java:995)
        at com.mysoft.framework.cache.inner.caffeine.CaffeineCreator.createStandardCache(CaffeineCreator.java:35)
        at com.mysoft.framework.core.function.config.StandardConfigProvider.<init>(StandardConfigProvider.java:62)
        at com.mysoft.framework.modeling.configuration.runlistener.CoreSpringApplicationRunListener.contextPrepared(CoreSpringApplicationRunListener.java:79)
        at org.springframework.boot.SpringApplicationRunListeners.lambda$contextPrepared$3(SpringApplicationRunListeners.java:67)
        at java.util.ArrayList.forEach(Unknown Source)
        at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
        at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
        at org.springframework.boot.SpringApplicationRunListeners.contextPrepared(SpringApplicationRunListeners.java:67)
        at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:403)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:338)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318)
        at com.mysoft.framework.container.CostApplication.main(CostApplication.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
java.lang.NullPointerException
        at java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source)
        at java.util.concurrent.ConcurrentHashMap.put(Unknown Source)
        at io.arex.agent.bootstrap.internal.WeakCache.put(WeakCache.java:31)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache$PerformCleanupTask.<init>(BoundedLocalCache.java:3275)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.<init>(BoundedLocalCache.java:239)
        at com.github.benmanes.caffeine.cache.SS.<init>(SS.java:32)
        at com.github.benmanes.caffeine.cache.SSMS.<init>(SSMS.java:66)
        at com.github.benmanes.caffeine.cache.SSMSW.<init>(SSMSW.java:42)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.github.benmanes.caffeine.cache.LocalCacheFactory.newBoundedLocalCache(LocalCacheFactory.java:98)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3357)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3353)
        at com.github.benmanes.caffeine.cache.Caffeine.build(Caffeine.java:995)
        at com.mysoft.framework.cache.inner.caffeine.CaffeineCreator.createStandardCache(CaffeineCreator.java:35)
        at com.mysoft.framework.core.function.config.StandardConfigProvider.<init>(StandardConfigProvider.java:62)
        at com.mysoft.framework.modeling.configuration.runlistener.CoreSpringApplicationRunListener.contextPrepared(CoreSpringApplicationRunListener.java:79)
        at org.springframework.boot.SpringApplicationRunListeners.lambda$contextPrepared$3(SpringApplicationRunListeners.java:67)
        at java.util.ArrayList.forEach(Unknown Source)
        at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
        at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
        at org.springframework.boot.SpringApplicationRunListeners.contextPrepared(SpringApplicationRunListeners.java:67)
        at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:403)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:338)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318)
        at com.mysoft.framework.container.CostApplication.main(CostApplication.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
[2023-05-22 11:44:14.226] [INFO ] [Jdk14Logger:log:87] [main] [-[No active profile set, falling back to default profiles: default]-]
[Thread-6] INFO io.arex.agent.instrumentation.InstrumentationInstaller - [arex] onTransformation: org.springframework.web.servlet.DispatcherServlet loaded: false from classLoader org.springframework.boot.loader.LaunchedURLClassLoader@5c448433

建议读取arex.agent.conf配置信息增加strip函数处理,增强容错性

复现步骤:

1、arex.agent.conf配置如下
arex.service.name=your-service-spring-petclinic
arex.storage.service.host=10.252.208.27:8093【有空格】
arex.config.service.host=10.252.208.27:8091【有空格】
2、启动服务

期望结果:

服务正常启动

实际结果:

因存在空格导致接口ip:hist【有空格】/path找不到

优化建议:

读取配置后,使用strip函数处理,增强代码容错性

arex agent 端录制不到流量

arex agent 端录制不到流量,日志如下:

main [arex-arex-install-thread-3-thread-1] WARN io.arex.agent.instrumentation.BaseAgentInstaller - [AREX] Agent install will not install due to invalid config.
main 2023-08-07 18:00:00.030 [-] [xxl-job, EmbedServer bizThreadPool-121919017] INFO com.xxl.job.core.executor.XxlJobExecutor->>>>>>>>>>> xxl-job regist JobThread success, jobId:48, handler:com.xxl.job.core.handler.impl.MethodJobHandler@7649e84c[class com.xyd.core.batch.job.xxljob.Batch
JobMonitor#biProcessFlagTimeoutUpdate]
main Creating a new SqlSession
main SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4d3714a] was not registered for synchronization because synchronization is not active
main JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@5fd80ca1] will not be managed by Spring
main ==> Preparing: SELECT id,process_status,gmt_modify,process_date,gmt_create,process_no FROM t_duebill_info_process_flag WHERE (gmt_modify <= ? AND process_status = ?)
main ==> Parameters: 2023-08-07 17:00:00.081(Timestamp), 0(Integer)
main <== Total: 0
main Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4d3714a]
main 2023-08-07 18:01:33.128 [-] [xxl-job, JobThread-48-1691402400030] INFO com.xxl.job.core.thread.JobThread->>>>>>>>>>> xxl-job JobThread stoped, hashCode:Thread[xxl-job, JobThread-48-1691402400030,10,main] │w
main [arex-arex-install-thread-3-thread-1] INFO io.arex.foundation.services.ConfigService - [arex] Load agent config
main request: {"appId":"core-batch","recordVersion":"0.3.7","host":"192.168.19.12","agentStatus":"UN_START","systemProperties":null,"systemEnv":null}
main response: {"responseStatusType":{"responseCode":0,"responseDesc":"success","timestamp":1691402704141},"body":{"serviceCollectConfiguration":{"status":null,"modifiedTime":null,"appId":"core-batch","sampleRate":1,"allowDayOfWeeks":127,"timeMock":true,"allowTimeOfDayFrom":"00:01","allo
wTimeOfDayTo":"23:59","excludeServiceOperationSet":null,"recordMachineCountLimit":1,"extendField":null},"dynamicClassConfigurationList":null,"status":3,"targetAddress":"192.168.19.12(not recording)"}} │w
main [arex-arex-install-thread-3-thread-1] WARN io.arex.agent.instrumentation.BaseAgentInstaller - [AREX] Agent install will not install due to invalid config.
main [arex-arex-install-thread-3-thread-1] INFO io.arex.foundation.services.ConfigService - [arex] Load agent config │d
main request: {"appId":"core-batch","recordVersion":"0.3.7","host":"192.168.19.12","agentStatus":"UN_START","systemProperties":null,"systemEnv":null}
main response: {"responseStatusType":{"responseCode":0,"responseDesc":"success","timestamp":1691403604218},"body":{"serviceCollectConfiguration":{"status":null,"modifiedTime":null,"appId":"core-batch","sampleRate":1,"allowDayOfWeeks":127,"timeMock":true,"allowTimeOfDayFrom":"00:01","allo
wTimeOfDayTo":"23:59","excludeServiceOperationSet":null,"recordMachineCountLimit":1,"extendField":null},"dynamicClassConfigurationList":null,"status":3,"targetAddress":"192.168.19.12(not recording)"}}
main [arex-arex-install-thread-3-thread-1] WARN io.arex.agent.instrumentation.BaseAgentInstaller - [AREX] Agent install will not install due to invalid config.
main 2023-08-07 18:30:00.026 [-] [xxl-job, EmbedServer bizThreadPool-910816355] INFO com.xxl.job.core.executor.XxlJobExecutor->>>>>>>>>>> xxl-job regist JobThread success, jobId:48, handler:com.xxl.job.core.handler.impl.MethodJobHandler@7649e84c[class com.xyd.core.batch.job.xxljob.Batch
JobMonitor#biProcessFlagTimeoutUpdate]
main Creating a new SqlSession
main SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@798aea31] was not registered for synchronization because synchronization is not active
main JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@5fd80ca1] will not be managed by Spring
main ==> Preparing: SELECT id,process_status,gmt_modify,process_date,gmt_create,process_no FROM t_duebill_info_process_flag WHERE (gmt_modify <= ? AND process_status = ?)
main ==> Parameters: 2023-08-07 17:30:00.053(Timestamp), 0(Integer) │w
main <== Total: 0
main Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@798aea31]
main 2023-08-07 18:31:33.082 [-] [xxl-job, JobThread-48-1691404200026] INFO com.xxl.job.core.thread.JobThread->>>>>>>>>>> xxl-job JobThread stoped, hashCode:Thread[xxl-job, JobThread-48-1691404200026,10,main]
main [arex-arex-install-thread-3-thread-1] INFO io.arex.foundation.services.ConfigService - [arex] Load agent config │w
main request: {"appId":"core-batch","recordVersion":"0.3.7","host":"192.168.19.12","agentStatus":"UN_START","systemProperties":null,"systemEnv":null}
main response: {"responseStatusType":{"responseCode":0,"responseDesc":"success","timestamp":1691404504298},"body":{"serviceCollectConfiguration":{"status":null,"modifiedTime":null,"appId":"core-batch","sampleRate":1,"allowDayOfWeeks":127,"timeMock":true,"allowTimeOfDayFrom":"00:01","allo │d
wTimeOfDayTo":"23:59","excludeServiceOperationSet":null,"recordMachineCountLimit":1,"extendField":null},"dynamicClassConfigurationList":null,"status":3,"targetAddress":"192.168.19.12(not recording)"}}
main [arex-arex-install-thread-3-thread-1] WARN io.arex.agent.instrumentation.BaseAgentInstaller - [AREX] Agent install will not install due to invalid config.
main [arex-arex-install-thread-3-thread-1] INFO io.arex.foundation.services.ConfigService - [arex] Load agent config
main request: {"appId":"core-batch","recordVersion":"0.3.7","host":"192.168.19.12","agentStatus":"UN_START","systemProperties":null,"systemEnv":null}
main response: {"responseStatusType":{"responseCode":0,"responseDesc":"success","timestamp":1691405404378},"body":{"serviceCollectConfiguration":{"status":null,"modifiedTime":null,"appId":"core-batch","sampleRate":1,"allowDayOfWeeks":127,"timeMock":true,"allowTimeOfDayFrom":"00:01","allo
wTimeOfDayTo":"23:59","excludeServiceOperationSet":null,"recordMachineCountLimit":1,"extendField":null},"dynamicClassConfigurationList":null,"status":3,"targetAddress":"192.168.19.12(not recording)"}}
main [arex-arex-install-thread-3-thread-1] WARN io.arex.agent.instrumentation.BaseAgentInstaller - [AREX] Agent install will not install due to invalid config.

这个现象偶尔出现,一般可以通过重启解决。请教下它出现的原因是什么呢?

T<List<T>> 的接口契约结构会出现反序列化错误

Bug description
1691033190172
Steps to reproduce
If possible, provide a recipe for reproducing the error.

Please provide [GitHub address] to reproduce this issue.

Expected behavior

What should happen? / What did you expect?

What went wrong?
What happened instead? What error message did you get?

Environment

Compiler: (e.g., "AdoptOpenJDK 1.8.0")
arex-agent-java: (e.g., "0.2.0")

Additional context
Add any other context about the problem here.
If there is an exception, please attach the exception trace:

Just put your stack trace here!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.