diff --git a/logs/app.log b/logs/app.log index 11c8005..5447178 100644 --- a/logs/app.log +++ b/logs/app.log @@ -1,12 +1,30 @@ -2025-07-13 18:24:00 [main] INFO cn.van.Application - Starting Application using Java 17.0.14 with PID 44180 (D:\code\jd\target\classes started by CC in D:\code\jd) -2025-07-13 18:24:00 [main] DEBUG cn.van.Application - Running with Spring Boot v3.1.5, Spring v6.0.13 -2025-07-13 18:24:00 [main] INFO cn.van.Application - The following 1 profile is active: "dev" -2025-07-13 18:24:02 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-6666"] -2025-07-13 18:24:02 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-07-13 18:24:02 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.15] -2025-07-13 18:24:02 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-07-13 18:24:09 [main] INFO o.a.r.s.a.RocketMQAutoConfiguration - a producer (wx_producer) init on namesrv 192.168.8.88:39876 -2025-07-13 18:24:13 [main] ERROR o.a.r.spring.core.RocketMQTemplate - syncSend failed. destination:wx-message, message:GenericMessage [payload={"data":{"msg":"[ 18:24:07 2025-07-13 ] \r\nJarvis 更新完成 [亲亲][亲亲][亲亲] ","wxid":"wxid_ytpc72mdoskt22"},"type":"sendText2"}, headers={TAGS=wx, id=1c782993-2b30-94a7-e131-7e2f9727d2f6, timestamp=1752402251367}], detail exception info: +2025-09-09 11:14:53 [main] INFO cn.van.Application - Starting Application using Java 17.0.14 with PID 40944 (D:\Code\Code\jd\target\classes started by 80787 in D:\Code\Code\jd) +2025-09-09 11:14:53 [main] DEBUG cn.van.Application - Running with Spring Boot v3.1.5, Spring v6.0.13 +2025-09-09 11:14:53 [main] INFO cn.van.Application - The following 1 profile is active: "dev" +2025-09-09 11:14:54 [main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-6666"] +2025-09-09 11:14:54 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-09-09 11:14:54 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.15] +2025-09-09 11:14:54 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-09-09 11:14:56 [main] WARN o.s.c.LocalVariableTableParameterNameDiscoverer - Using deprecated '-debug' fallback for parameter name resolution. Compile the affected code with '-parameters' instead or avoid its introspection: cn.van.business.repository.JDOrderRepository +2025-09-09 11:14:57 [main] WARN o.s.c.LocalVariableTableParameterNameDiscoverer - Using deprecated '-debug' fallback for parameter name resolution. Compile the affected code with '-parameters' instead or avoid its introspection: cn.van.business.repository.OrderRowRepository +2025-09-09 11:14:57 [main] WARN o.s.c.LocalVariableTableParameterNameDiscoverer - Using deprecated '-debug' fallback for parameter name resolution. Compile the affected code with '-parameters' instead or avoid its introspection: cn.van.business.repository.SuperAdminRepository +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 初始化超级管理员 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:凡 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:源 wxid_yneqf1implxu12 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:琳 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:淑 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:妈 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:心 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:敏 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:梓豪 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:楠 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:星 wxid_sr3r8ot0z6do12 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:0213 wxid_cfmrk2upjtf322 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:轩 wxid_ytpc72mdoskt22 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:小怪兽 wxid_m5ibcpe0ukw521 +2025-09-09 11:14:57 [main] INFO cn.van.business.util.WXUtil - 超级管理员:牛 wxid_ytpc72mdoskt22 +2025-09-09 11:14:58 [main] INFO o.a.r.s.a.RocketMQAutoConfiguration - a producer (wx_producer) init on namesrv 192.168.8.88:39876 +2025-09-09 11:15:03 [main] ERROR o.a.r.spring.core.RocketMQTemplate - syncSend failed. destination:wx-message, message:GenericMessage [payload={"data":{"msg":"[ 11:14:57 2025-09-09 ] \r\nJarvis 更新完成 [亲亲][亲亲][亲亲] ","wxid":"wxid_ytpc72mdoskt22","msgType":1,"fromWxid":"wxid_cfmrk2upjtf322","hiddenTime":false},"type":"sendText2"}, headers={TAGS=wx, id=e77aed6a-9420-8411-62ea-44dd39d7d1dc, timestamp=1757387699939}], detail exception info: java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:843) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:574) @@ -28,9 +46,9 @@ java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.Remoting at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699) at cn.van.business.mq.MessageProducerService$$SpringCGLIB$$0.sendMessage() - at cn.van.business.util.WXUtil.sendTextMessage(WXUtil.java:327) - at cn.van.business.util.WXUtil.initSuperAdmins(WXUtil.java:243) - at cn.van.business.util.WXUtil.(WXUtil.java:100) + at cn.van.business.util.WXUtil.sendTextMessage(WXUtil.java:276) + at cn.van.business.util.WXUtil.initSuperAdmins(WXUtil.java:202) + at cn.van.business.util.WXUtil.(WXUtil.java:107) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) @@ -76,20 +94,6 @@ java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.Remoting at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:764) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:747) - at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:492) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1416) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:597) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) @@ -105,17 +109,16 @@ Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: conn at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:2050) at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:2041) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:782) - ... 91 common frames omitted -2025-07-13 18:24:13 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'WXListener': Unsatisfied dependency expressed through field 'wxMessageConsumer': Error creating bean with name 'wxMessageConsumer' defined in file [D:\code\jd\target\classes\cn\van\business\util\WxMessageConsumer.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'otherUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\OtherUtil.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'WXUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception -2025-07-13 18:24:14 [main] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] -2025-07-13 18:24:14 [main] ERROR o.s.boot.SpringApplication - Application run failed -org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'WXListener': Unsatisfied dependency expressed through field 'wxMessageConsumer': Error creating bean with name 'wxMessageConsumer' defined in file [D:\code\jd\target\classes\cn\van\business\util\WxMessageConsumer.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'otherUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\OtherUtil.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'WXUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:767) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:747) - at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:492) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1416) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:597) + ... 77 common frames omitted +2025-09-09 11:15:03 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'JDInnerController' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\controller\jd\JDInnerController.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'JDUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\JDUtil.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'WXUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception +2025-09-09 11:15:06 [main] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-09-09 11:15:06 [main] ERROR o.s.boot.SpringApplication - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'JDInnerController' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\controller\jd\JDInnerController.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'JDUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\JDUtil.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'WXUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) @@ -131,23 +134,7 @@ org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) at cn.van.Application.main(Application.java:31) -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'wxMessageConsumer' defined in file [D:\code\jd\target\classes\cn\van\business\util\WxMessageConsumer.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'otherUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\OtherUtil.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'WXUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801) - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1189) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) - at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:764) - ... 20 common frames omitted -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'otherUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\OtherUtil.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'WXUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'JDUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\JDUtil.class]: Unsatisfied dependency expressed through constructor parameter 3: Error creating bean with name 'WXUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352) @@ -163,8 +150,8 @@ Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Err at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) - ... 33 common frames omitted -Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'WXUtil' defined in file [D:\code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception + ... 19 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'WXUtil' defined in file [D:\Code\Code\jd\target\classes\cn\van\business\util\WXUtil.class]: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1352) @@ -180,12 +167,12 @@ Caused by: org.springframework.beans.factory.BeanCreationException: Error creati at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) - ... 47 common frames omitted + ... 33 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.van.business.util.WXUtil]: Constructor threw exception at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:110) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) - ... 61 common frames omitted + ... 47 common frames omitted Caused by: org.springframework.messaging.MessagingException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:695) at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:487) @@ -201,16 +188,16 @@ Caused by: org.springframework.messaging.MessagingException: org.apache.rocketmq at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699) at cn.van.business.mq.MessageProducerService$$SpringCGLIB$$0.sendMessage() - at cn.van.business.util.WXUtil.sendTextMessage(WXUtil.java:327) - at cn.van.business.util.WXUtil.initSuperAdmins(WXUtil.java:243) - at cn.van.business.util.WXUtil.(WXUtil.java:100) + at cn.van.business.util.WXUtil.sendTextMessage(WXUtil.java:276) + at cn.van.business.util.WXUtil.initSuperAdmins(WXUtil.java:202) + at cn.van.business.util.WXUtil.(WXUtil.java:107) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211) - ... 63 common frames omitted + ... 49 common frames omitted Caused by: java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:843) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:574) @@ -219,10 +206,10 @@ Caused by: java.lang.IllegalStateException: org.apache.rocketmq.remoting.excepti at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1564) at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:475) at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:687) - ... 85 common frames omitted + ... 71 common frames omitted Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:572) at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:2050) at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:2041) at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:782) - ... 91 common frames omitted + ... 77 common frames omitted diff --git a/src/main/java/cn/van/business/controller/jd/JDInnerController.java b/src/main/java/cn/van/business/controller/jd/JDInnerController.java index 12f0282..e90c685 100644 --- a/src/main/java/cn/van/business/controller/jd/JDInnerController.java +++ b/src/main/java/cn/van/business/controller/jd/JDInnerController.java @@ -146,7 +146,7 @@ public class JDInnerController { * ✅ 新增逻辑:先尝试从淘宝获取评论,但前提是 productTypeMapTB 存在对应映射 */ String taobaoProductIdMap = tbMap.getOrDefault(productId, null); - + if (taobaoProductIdMap != null && !taobaoProductIdMap.isEmpty()) { logger.info("发现淘宝映射ID,尝试从淘宝获取评论"); Comment taobaoComment = generateTaobaoComment(productType); @@ -351,6 +351,7 @@ public class JDInnerController { } } + private static JSONObject error(String msg) { JSONObject o = new JSONObject(); o.put("error", msg); diff --git a/src/main/java/cn/van/business/util/JDScheduleJob.java b/src/main/java/cn/van/business/util/JDScheduleJob.java index 72ab6a0..837d7b9 100644 --- a/src/main/java/cn/van/business/util/JDScheduleJob.java +++ b/src/main/java/cn/van/business/util/JDScheduleJob.java @@ -28,10 +28,12 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -586,54 +588,56 @@ public class JDScheduleJob { } - /** - * 清理三个月前的Redis hash数据 - * 清理JD订单拉取标记,避免Redis中积累过多无用数据 - */ - @Scheduled(cron = "0 0 11 * * ?") // 每月1日的凌晨3点执行 - public void cleanOldRedisHashData() { - try { - // 计算三个月前的时间点 - LocalDateTime threeMonthsAgo = LocalDateTime.now().minusMonths(3); +/** + * 清理三个月前的Redis hash数据 + * 修复了时间解析异常的问题 + */ +@Scheduled(cron = "0 20 11 * * ?") // 每月1日的凌晨3点执行 +public void cleanOldRedisHashData() { + try { + // 获取三个月前的时间 + LocalDateTime threeMonthsAgo = LocalDateTime.now().minusMonths(3); - // 获取所有以JD_REFRESH_TAG开头的键 - Set keys = redisTemplate.keys(JD_REFRESH_TAG + "*"); + // 获取所有以JD_REFRESH_TAG开头的键 + Set keys = redisTemplate.keys(JD_REFRESH_TAG + "*"); - if (keys == null || keys.isEmpty()) { - logger.info("没有找到需要清理的Redis hash键"); - return; - } - - int cleanedCount = 0; - - // 遍历所有匹配的键 + if (keys != null && !keys.isEmpty()) { for (String key : keys) { - // 从键名中提取时间信息 - // 键名格式类似于: jd:refresh:tag:appKey:2025-06-09 10:00:00 try { - String[] parts = key.split(":"); - if (parts.length >= 6) { - // 重新组合时间部分 - String timeString = parts[parts.length - 2] + ":" + parts[parts.length - 1]; - LocalDateTime keyTime = LocalDateTime.parse(timeString, DATE_TIME_FORMATTER); + // 提取时间部分,格式为 yyyy-MM-dd HH:mm:ss 或 HH:mm:ss + String timePart = key.substring(key.lastIndexOf(":") + 1); - // 如果键的时间在三个月前,删除这个键 - if (keyTime.isBefore(threeMonthsAgo)) { - redisTemplate.delete(key); - cleanedCount++; - logger.info("已清理过期的Redis hash键: {}", key); + LocalDateTime time; + try { + // 尝试解析为完整的时间格式 + time = LocalDateTime.parse(timePart); + } catch (DateTimeParseException e) { + // 如果解析失败,尝试解析为时间部分 + if (timePart.contains(":")) { + // 假设是HH:mm:ss格式 + LocalTime localTime = LocalTime.parse(timePart); + // 使用当前日期和解析的时间创建LocalDateTime + time = LocalDateTime.of(LocalDate.now(), localTime); + } else { + // 如果无法解析,跳过这个键 + logger.warn("无法解析Redis键时间:{}", key); + continue; } } + + // 检查是否在三个月前 + if (time.isBefore(threeMonthsAgo)) { + redisTemplate.delete(key); + logger.info("已删除过期的Redis键:{}", key); + } } catch (Exception e) { - logger.warn("解析Redis键时间失败: {}", key, e); + logger.warn("解析Redis键时间失败:{}", key, e); } } - - logger.info("Redis hash数据清理完成,共清理 {} 个过期键", cleanedCount); - } catch (Exception e) { - logger.error("清理三个月前的Redis hash数据时发生错误", e); } + } catch (Exception e) { + logger.error("清理Redis hash数据时发生错误", e); } - +} }