diff --git a/logs/mt-pay-error.2025-12-22.log b/logs/mt-pay-error.2025-12-22.log index dc2ec2f..a7137b2 100644 --- a/logs/mt-pay-error.2025-12-22.log +++ b/logs/mt-pay-error.2025-12-22.log @@ -70,3 +70,1013 @@ org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitE at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at com.mtkj.mtpay.MtPayApplication.main(MtPayApplication.java:24) +2025-12-22 09:37:26.280 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:37:26.282 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:37:26.284 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) +2025-12-22 09:38:49.613 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:38:49.616 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:38:49.618 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) +2025-12-22 09:39:48.465 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:48.468 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:48.470 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 09:39:57.633 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:57.635 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:57.637 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 09:44:02.951 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 09:48:01.459 [http-nio-8082-exec-7] ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error +java.sql.SQLException: url not set + at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1273) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:898) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1462) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1458) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83) + at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:269) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:531) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) + at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:610) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) + at com.mtkj.mtpay.service.impl.ProductServiceImpl$$SpringCGLIB$$0.createProduct() + at com.mtkj.mtpay.controller.ProductController.createProduct(ProductController.java:38) + 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:254) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + 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:482) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:340) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) + 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:842) +2025-12-22 09:48:01.461 [http-nio-8082-exec-7] ERROR com.mtkj.mtpay.exception.GlobalExceptionHandler - 运行时异常 +org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction + at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:313) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:531) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) + at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:610) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) + at com.mtkj.mtpay.service.impl.ProductServiceImpl$$SpringCGLIB$$0.createProduct() + at com.mtkj.mtpay.controller.ProductController.createProduct(ProductController.java:38) + 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:254) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + 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:482) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:340) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) + 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:842) +Caused by: java.sql.SQLException: url not set + at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1273) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:898) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1462) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1458) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83) + at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:269) + ... 60 common frames omitted +2025-12-22 10:03:10.807 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. + +Reason: Failed to determine suitable jdbc url + + +Action: + +Consider the following: + If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. + If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). + +2025-12-22 10:03:10.808 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:643) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 22 common frames omitted +Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine suitable jdbc url + at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineUrl(DataSourceProperties.java:232) + at org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails.getJdbcUrl(PropertiesJdbcConnectionDetails.java:44) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:56) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Generic.dataSource(DataSourceConfiguration.java:193) + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 23 common frames omitted +2025-12-22 10:03:14.066 [restartedMain] ERROR com.mtkj.mtpay.config.DruidDataSourceConfig - 数据源URL未配置!请检查 application-dev.yml 中的 spring.datasource.druid.master.url 配置 +2025-12-22 10:03:14.078 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackController' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\controller\CallbackController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 22 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1517) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 36 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1502) + ... 48 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 61 common frames omitted +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 75 common frames omitted +Caused by: java.lang.IllegalStateException: 数据源URL未配置 + at com.mtkj.mtpay.config.DruidDataSourceConfig.masterDataSource(DruidDataSourceConfig.java:38) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.CGLIB$masterDataSource$0() + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$FastClass$$1.invoke() + at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) + at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.masterDataSource() + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 76 common frames omitted +2025-12-22 10:03:14.079 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackController' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\controller\CallbackController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 22 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1517) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 36 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1502) + ... 48 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 61 common frames omitted +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 75 common frames omitted +Caused by: java.lang.IllegalStateException: 数据源URL未配置 + at com.mtkj.mtpay.config.DruidDataSourceConfig.masterDataSource(DruidDataSourceConfig.java:38) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.CGLIB$masterDataSource$0() + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$FastClass$$1.invoke() + at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) + at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.masterDataSource() + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 76 common frames omitted +2025-12-22 10:03:34.056 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 10:04:54.857 [http-nio-8082-exec-6] ERROR com.mtkj.mtpay.exception.GlobalExceptionHandler - 运行时异常 +java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.mtkj.mtpay.mapper.PaymentOrderMapper.BaseResultMap + at com.baomidou.mybatisplus.core.MybatisConfiguration$StrictMap.get(MybatisConfiguration.java:482) + at com.baomidou.mybatisplus.core.MybatisConfiguration.getResultMap(MybatisConfiguration.java:297) + at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:321) + at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:214) + at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:276) + at com.baomidou.mybatisplus.core.injector.AbstractMethod.addMappedStatement(AbstractMethod.java:412) + at com.baomidou.mybatisplus.core.injector.AbstractMethod.addSelectMappedStatementForTable(AbstractMethod.java:307) + at com.baomidou.mybatisplus.core.injector.methods.SelectList.injectMappedStatement(SelectList.java:50) + at com.baomidou.mybatisplus.core.injector.AbstractMethod.inject(AbstractMethod.java:87) + at com.baomidou.mybatisplus.core.injector.AbstractSqlInjector.lambda$inspectInject$0(AbstractSqlInjector.java:58) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at com.baomidou.mybatisplus.core.injector.AbstractSqlInjector.inspectInject(AbstractSqlInjector.java:58) + at com.baomidou.mybatisplus.core.MybatisMapperAnnotationBuilder.parserInjector(MybatisMapperAnnotationBuilder.java:126) + at com.baomidou.mybatisplus.core.InjectorResolver.resolve(InjectorResolver.java:37) + at org.apache.ibatis.session.Configuration.lambda$parsePendingMethods$1(Configuration.java:980) + at java.base/java.util.Collection.removeIf(Collection.java:576) + at org.apache.ibatis.session.Configuration.parsePendingMethods(Configuration.java:979) + at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:970) + at com.baomidou.mybatisplus.core.MybatisConfiguration.hasStatement(MybatisConfiguration.java:363) + at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:948) + at org.apache.ibatis.binding.MapperMethod$SqlCommand.resolveMappedStatement(MapperMethod.java:253) + at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:225) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.(MybatisMapperMethod.java:50) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:99) + at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) + at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:36) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:97) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy3/jdk.proxy3.$Proxy82.insert(Unknown Source) + at com.mtkj.mtpay.service.impl.ProductServiceImpl.createProduct(ProductServiceImpl.java:90) + 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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) + at com.mtkj.mtpay.service.impl.ProductServiceImpl$$SpringCGLIB$$0.createProduct() + at com.mtkj.mtpay.controller.ProductController.createProduct(ProductController.java:38) + 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:254) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + 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:482) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:340) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) + 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:842) +2025-12-22 10:07:36.947 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. + +Reason: Failed to determine suitable jdbc url + + +Action: + +Consider the following: + If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. + If you have database settings to be loaded from a particular profile you may need to activate it (the profiles dev are currently active). + +2025-12-22 10:07:36.950 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:643) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 22 common frames omitted +Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine suitable jdbc url + at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineUrl(DataSourceProperties.java:232) + at org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails.getJdbcUrl(PropertiesJdbcConnectionDetails.java:44) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:56) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Generic.dataSource(DataSourceConfiguration.java:193) + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 23 common frames omitted +2025-12-22 10:07:57.320 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 11:42:28.292 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Field productService in com.mtkj.mtpay.controller.ProductController required a bean of type 'com.mtkj.mtpay.service.ProductService' that could not be found. + +The injection point has the following annotations: + - @org.springframework.beans.factory.annotation.Autowired(required=true) + + +Action: + +Consider defining a bean of type 'com.mtkj.mtpay.service.ProductService' in your configuration. + +2025-12-22 11:42:28.294 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productController': Unsatisfied dependency expressed through field 'productService': No qualifying bean of type 'com.mtkj.mtpay.service.ProductService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mtkj.mtpay.service.ProductService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} + at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1878) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1404) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) + ... 23 common frames omitted diff --git a/logs/mt-pay.2025-12-22.log b/logs/mt-pay.2025-12-22.log index 1a0a16b..f669e9a 100644 --- a/logs/mt-pay.2025-12-22.log +++ b/logs/mt-pay.2025-12-22.log @@ -74,3 +74,1763 @@ org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitE at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at com.mtkj.mtpay.MtPayApplication.main(MtPayApplication.java:24) +2025-12-22 09:37:25.516 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 09:37:25.551 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 11548 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 09:37:25.551 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 09:37:26.254 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +2025-12-22 09:37:26.280 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:37:26.282 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:37:26.284 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) +2025-12-22 09:38:48.803 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 09:38:48.849 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 4864 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 09:38:48.850 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 09:38:49.585 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +2025-12-22 09:38:49.613 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:38:49.616 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:38:49.618 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:28) +2025-12-22 09:39:47.804 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 09:39:47.836 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 16444 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 09:39:47.838 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 09:39:48.443 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +2025-12-22 09:39:48.465 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:48.468 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:48.470 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 09:39:56.894 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 09:39:56.933 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23464 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 09:39:56.934 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 09:39:57.608 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +2025-12-22 09:39:57.633 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:57.635 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +2025-12-22 09:39:57.637 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 09:44:00.601 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 09:44:00.642 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 21512 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 09:44:00.642 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 09:44:01.829 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 09:44:01.830 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 09:44:01.830 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 09:44:01.873 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 09:44:01.937 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 09:44:01.940 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 09:44:01.943 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 09:44:01.963 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成,URL: null +2025-12-22 09:44:02.281 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 09:44:02.283 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 09:44:02.285 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 09:44:02.286 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 09:44:02.288 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 09:44:02.289 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 09:44:02.314 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 09:44:02.315 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 09:44:02.316 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 09:44:02.317 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 09:44:02.319 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 09:44:02.320 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 09:44:02.408 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient,配置JSON消息转换器 +2025-12-22 09:44:02.547 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成 +2025-12-22 09:44:02.567 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 09:44:02.568 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 09:44:02.569 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 09:44:02.570 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 09:44:02.571 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 09:44:02.571 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 09:44:02.585 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 09:44:02.587 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 09:44:02.588 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 09:44:02.589 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 09:44:02.590 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 09:44:02.591 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 09:44:02.660 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许所有来源 +2025-12-22 09:44:02.663 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成 +2025-12-22 09:44:02.929 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"] +2025-12-22 09:44:02.946 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 2.867 seconds (process running for 3.619) +2025-12-22 09:44:02.949 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║ +║ ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用信息 ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用名称: {:<45} ║ +║ 运行环境: {:<45} ║ +║ 服务端口: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 访问地址 ║ +╠══════════════════════════════════════════════════════════╣ +║ 后端服务: {:<45} ║ +║ API接口: {:<45} ║ +║ Druid监控: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 状态: 🟢 服务运行中,可以接收请求 ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 09:44:02.949 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +📌 提示: + - 前端代理地址: http://localhost:3000 + - 后端API地址: http://localhost:8082//api + - 图片上传接口: http://localhost:8082//api/product/upload/image + - 商品管理接口: http://localhost:8082//api/product + +2025-12-22 09:44:02.951 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 09:46:29.186 [http-nio-8082-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-12-22 09:46:29.701 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b5bba11f-8de8-4572-93fe-569182e746ff.jpeg +2025-12-22 09:46:29.701 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/2d995b91-ffba-4c29-8e43-24ed949b1d03.jpeg +2025-12-22 09:46:29.704 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/60fb7f4d-4c95-432d-9cd6-199dd0f6a57e.jpeg +2025-12-22 09:46:29.704 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/761771dc-1456-4d4c-a8bb-2b9389f34f47.jpeg +2025-12-22 09:46:29.705 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 图3.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/60fb7f4d-4c95-432d-9cd6-199dd0f6a57e.jpeg +2025-12-22 09:46:29.705 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 白色.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/761771dc-1456-4d4c-a8bb-2b9389f34f47.jpeg +2025-12-22 09:46:29.705 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 主图1.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b5bba11f-8de8-4572-93fe-569182e746ff.jpeg +2025-12-22 09:46:29.705 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 粉红色.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d995b91-ffba-4c29-8e43-24ed949b1d03.jpeg +2025-12-22 09:46:29.709 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/0c39a430-afae-4238-8ee4-5c095e552466.jpeg +2025-12-22 09:46:29.710 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 图2.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/0c39a430-afae-4238-8ee4-5c095e552466.jpeg +2025-12-22 09:46:29.729 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/d124a3fb-6247-4d17-8308-9b5debbe1c2a.jpeg +2025-12-22 09:46:29.729 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 蓝色.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/d124a3fb-6247-4d17-8308-9b5debbe1c2a.jpeg +2025-12-22 09:48:01.436 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.controller.ProductController - 创建商品请求:CreateProductRequestDTO(name=名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, price=12.36, mainImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d995b91-ffba-4c29-8e43-24ed949b1d03.jpeg, mainImages=[https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d995b91-ffba-4c29-8e43-24ed949b1d03.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b5bba11f-8de8-4572-93fe-569182e746ff.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/761771dc-1456-4d4c-a8bb-2b9389f34f47.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/0c39a430-afae-4238-8ee4-5c095e552466.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/60fb7f4d-4c95-432d-9cd6-199dd0f6a57e.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/d124a3fb-6247-4d17-8308-9b5debbe1c2a.jpeg], status=ACTIVE, shopId=1000001, skus=[CreateProductRequestDTO.CreateProductSkuDTO(sku=mj001, price=9.9, currency=USD, stock=9999, salesAttrs=要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好, skuImage=null, weight=50, size=111111, specification=null, status=ACTIVE)]) +2025-12-22 09:48:01.459 [http-nio-8082-exec-7] ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error +java.sql.SQLException: url not set + at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1273) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:898) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1462) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1458) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83) + at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:269) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:531) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) + at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:610) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) + at com.mtkj.mtpay.service.impl.ProductServiceImpl$$SpringCGLIB$$0.createProduct() + at com.mtkj.mtpay.controller.ProductController.createProduct(ProductController.java:38) + 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:254) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + 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:482) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:340) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) + 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:842) +2025-12-22 09:48:01.461 [http-nio-8082-exec-7] ERROR com.mtkj.mtpay.exception.GlobalExceptionHandler - 运行时异常 +org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction + at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:313) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:531) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) + at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:610) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) + at com.mtkj.mtpay.service.impl.ProductServiceImpl$$SpringCGLIB$$0.createProduct() + at com.mtkj.mtpay.controller.ProductController.createProduct(ProductController.java:38) + 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:254) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + 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:482) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:340) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) + 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:842) +Caused by: java.sql.SQLException: url not set + at com.alibaba.druid.pool.DruidDataSource.resolveDriver(DruidDataSource.java:1273) + at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:898) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1462) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1458) + at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:83) + at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:269) + ... 60 common frames omitted +2025-12-22 09:48:01.465 [http-nio-8082-exec-7] WARN o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Resolved [org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction] +2025-12-22 10:03:10.183 [Thread-8] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"] +2025-12-22 10:03:10.262 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ MTKJ PAY 支付系统正在启动... ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:03:10.311 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 21512 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 10:03:10.312 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 10:03:10.561 [restartedMain] WARN org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mtkj.mtkjpay]' package. Please check your configuration. +2025-12-22 10:03:10.627 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 10:03:10.627 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 10:03:10.627 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 10:03:10.653 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 10:03:10.763 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url +2025-12-22 10:03:10.765 [restartedMain] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] +2025-12-22 10:03:10.807 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. + +Reason: Failed to determine suitable jdbc url + + +Action: + +Consider the following: + If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. + If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). + +2025-12-22 10:03:10.808 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:643) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 22 common frames omitted +Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine suitable jdbc url + at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineUrl(DataSourceProperties.java:232) + at org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails.getJdbcUrl(PropertiesJdbcConnectionDetails.java:44) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:56) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Generic.dataSource(DataSourceConfiguration.java:193) + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 23 common frames omitted +2025-12-22 10:03:13.685 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ MTKJ PAY 支付系统正在启动... ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:03:13.717 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 21512 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 10:03:13.717 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - No active profile set, falling back to 1 default profile: "default" +2025-12-22 10:03:14.023 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 10:03:14.023 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 10:03:14.023 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 10:03:14.044 [restartedMain] INFO o.a.c.c.ContainerBase.[Tomcat-1].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 10:03:14.063 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 10:03:14.063 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 10:03:14.066 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 10:03:14.066 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: null, Username: null +2025-12-22 10:03:14.066 [restartedMain] ERROR com.mtkj.mtpay.config.DruidDataSourceConfig - 数据源URL未配置!请检查 application-dev.yml 中的 spring.datasource.druid.master.url 配置 +2025-12-22 10:03:14.067 [restartedMain] 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 'callbackController' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\controller\CallbackController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 +2025-12-22 10:03:14.068 [restartedMain] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] +2025-12-22 10:03:14.078 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackController' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\controller\CallbackController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 22 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1517) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 36 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1502) + ... 48 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 61 common frames omitted +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 75 common frames omitted +Caused by: java.lang.IllegalStateException: 数据源URL未配置 + at com.mtkj.mtpay.config.DruidDataSourceConfig.masterDataSource(DruidDataSourceConfig.java:38) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.CGLIB$masterDataSource$0() + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$FastClass$$1.invoke() + at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) + at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.masterDataSource() + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 76 common frames omitted +2025-12-22 10:03:14.079 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackController' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\controller\CallbackController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'callbackServiceImpl' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\service\impl\CallbackServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 22 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'paymentOrderMapper' defined in file [E:\MTKJPAY\mt-pay\target\classes\com\mtkj\mtpay\mapper\PaymentOrderMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory': Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1517) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 36 common frames omitted +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1502) + ... 48 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'masterDataSource' defined in class path resource [com/mtkj/mtpay/config/DruidDataSourceConfig.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:1441) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) + at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) + ... 61 common frames omitted +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'masterDataSource' threw exception with message: 数据源URL未配置 + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 75 common frames omitted +Caused by: java.lang.IllegalStateException: 数据源URL未配置 + at com.mtkj.mtpay.config.DruidDataSourceConfig.masterDataSource(DruidDataSourceConfig.java:38) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.CGLIB$masterDataSource$0() + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$FastClass$$1.invoke() + at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) + at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) + at com.mtkj.mtpay.config.DruidDataSourceConfig$$SpringCGLIB$$0.masterDataSource() + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 76 common frames omitted +2025-12-22 10:03:31.841 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 10:03:31.883 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 24824 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 10:03:31.883 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev" +2025-12-22 10:03:32.939 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 10:03:32.940 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 10:03:32.941 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 10:03:32.986 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 10:03:33.052 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 10:03:33.056 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 10:03:33.059 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 10:03:33.059 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025 +2025-12-22 10:03:33.077 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成,URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai +2025-12-22 10:03:33.380 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 10:03:33.382 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 10:03:33.385 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 10:03:33.386 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 10:03:33.388 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 10:03:33.393 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 10:03:33.428 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 10:03:33.429 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 10:03:33.430 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 10:03:33.432 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 10:03:33.433 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 10:03:33.434 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 10:03:33.489 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient,配置JSON消息转换器 +2025-12-22 10:03:33.633 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成 +2025-12-22 10:03:33.652 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 10:03:33.653 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 10:03:33.654 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 10:03:33.654 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 10:03:33.656 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 10:03:33.657 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 10:03:33.673 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 10:03:33.675 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 10:03:33.675 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 10:03:33.677 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 10:03:33.678 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 10:03:33.679 [restartedMain] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 10:03:33.750 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许所有来源 +2025-12-22 10:03:33.752 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成 +2025-12-22 10:03:34.033 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"] +2025-12-22 10:03:34.051 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 2.706 seconds (process running for 3.434) +2025-12-22 10:03:34.054 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║ +║ ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用信息 ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用名称: {:<45} ║ +║ 运行环境: {:<45} ║ +║ 服务端口: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 访问地址 ║ +╠══════════════════════════════════════════════════════════╣ +║ 后端服务: {:<45} ║ +║ API接口: {:<45} ║ +║ Druid监控: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 状态: 🟢 服务运行中,可以接收请求 ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:03:34.054 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +📌 提示: + - 前端代理地址: http://localhost:3000 + - 后端API地址: http://localhost:8082//api + - 图片上传接口: http://localhost:8082//api/product/upload/image + - 商品管理接口: http://localhost:8082//api/product + +2025-12-22 10:03:34.056 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 10:03:49.041 [http-nio-8082-exec-3] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-12-22 10:03:50.068 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg +2025-12-22 10:03:50.068 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg +2025-12-22 10:03:50.068 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg +2025-12-22 10:03:50.068 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg +2025-12-22 10:03:50.068 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg +2025-12-22 10:03:50.070 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 图2.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg +2025-12-22 10:03:50.070 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 主图1.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg +2025-12-22 10:03:50.070 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 白色.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg +2025-12-22 10:03:50.070 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 粉红色.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg +2025-12-22 10:03:50.070 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 图3.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg +2025-12-22 10:03:50.198 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg +2025-12-22 10:03:50.199 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 蓝色.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg +2025-12-22 10:04:52.135 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.controller.ProductController - 创建商品请求:CreateProductRequestDTO(name=名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, price=20, mainImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg, mainImages=[https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg], status=ACTIVE, shopId=10001, skus=[CreateProductRequestDTO.CreateProductSkuDTO(sku= 要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好, price=9.9, currency=USD, stock=0, salesAttrs=要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好, skuImage=null, weight=60, size=8952, specification=null, status=ACTIVE)]) +2025-12-22 10:04:54.799 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建商品,商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, 店铺ID: 10001, SKU数量: 1 +2025-12-22 10:04:54.802 [http-nio-8082-exec-6] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品主图(多图): ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg"] +2025-12-22 10:04:54.805 [http-nio-8082-exec-6] WARN c.b.mybatisplus.core.injector.methods.Insert - [com.mtkj.mtpay.mapper.PaymentOrderMapper.insert] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Insert] +2025-12-22 10:04:54.806 [http-nio-8082-exec-6] WARN c.b.mybatisplus.core.injector.methods.Delete - [com.mtkj.mtpay.mapper.PaymentOrderMapper.delete] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Delete] +2025-12-22 10:04:54.808 [http-nio-8082-exec-6] WARN c.b.mybatisplus.core.injector.methods.Update - [com.mtkj.mtpay.mapper.PaymentOrderMapper.update] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.Update] +2025-12-22 10:04:54.809 [http-nio-8082-exec-6] WARN c.b.mybatisplus.core.injector.methods.SelectCount - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectCount] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectCount] +2025-12-22 10:04:54.810 [http-nio-8082-exec-6] WARN c.b.mybatisplus.core.injector.methods.SelectMaps - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectMaps] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectMaps] +2025-12-22 10:04:54.811 [http-nio-8082-exec-6] WARN c.b.mybatisplus.core.injector.methods.SelectObjs - [com.mtkj.mtpay.mapper.PaymentOrderMapper.selectObjs] Has been loaded by XML or SqlProvider or Mybatis's Annotation, so ignoring this injection for [class com.baomidou.mybatisplus.core.injector.methods.SelectObjs] +2025-12-22 10:04:54.857 [http-nio-8082-exec-6] ERROR com.mtkj.mtpay.exception.GlobalExceptionHandler - 运行时异常 +java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.mtkj.mtpay.mapper.PaymentOrderMapper.BaseResultMap + at com.baomidou.mybatisplus.core.MybatisConfiguration$StrictMap.get(MybatisConfiguration.java:482) + at com.baomidou.mybatisplus.core.MybatisConfiguration.getResultMap(MybatisConfiguration.java:297) + at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:321) + at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:214) + at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:276) + at com.baomidou.mybatisplus.core.injector.AbstractMethod.addMappedStatement(AbstractMethod.java:412) + at com.baomidou.mybatisplus.core.injector.AbstractMethod.addSelectMappedStatementForTable(AbstractMethod.java:307) + at com.baomidou.mybatisplus.core.injector.methods.SelectList.injectMappedStatement(SelectList.java:50) + at com.baomidou.mybatisplus.core.injector.AbstractMethod.inject(AbstractMethod.java:87) + at com.baomidou.mybatisplus.core.injector.AbstractSqlInjector.lambda$inspectInject$0(AbstractSqlInjector.java:58) + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) + at com.baomidou.mybatisplus.core.injector.AbstractSqlInjector.inspectInject(AbstractSqlInjector.java:58) + at com.baomidou.mybatisplus.core.MybatisMapperAnnotationBuilder.parserInjector(MybatisMapperAnnotationBuilder.java:126) + at com.baomidou.mybatisplus.core.InjectorResolver.resolve(InjectorResolver.java:37) + at org.apache.ibatis.session.Configuration.lambda$parsePendingMethods$1(Configuration.java:980) + at java.base/java.util.Collection.removeIf(Collection.java:576) + at org.apache.ibatis.session.Configuration.parsePendingMethods(Configuration.java:979) + at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:970) + at com.baomidou.mybatisplus.core.MybatisConfiguration.hasStatement(MybatisConfiguration.java:363) + at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:948) + at org.apache.ibatis.binding.MapperMethod$SqlCommand.resolveMappedStatement(MapperMethod.java:253) + at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:225) + at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.(MybatisMapperMethod.java:50) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:99) + at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) + at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:36) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:97) + at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) + at jdk.proxy3/jdk.proxy3.$Proxy82.insert(Unknown Source) + at com.mtkj.mtpay.service.impl.ProductServiceImpl.createProduct(ProductServiceImpl.java:90) + 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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:352) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) + at com.mtkj.mtpay.service.impl.ProductServiceImpl$$SpringCGLIB$$0.createProduct() + at com.mtkj.mtpay.controller.ProductController.createProduct(ProductController.java:38) + 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:254) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:182) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:917) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:829) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) + 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:482) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:340) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1744) + 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:842) +2025-12-22 10:04:54.862 [http-nio-8082-exec-6] WARN o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Resolved [java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.mtkj.mtpay.mapper.PaymentOrderMapper.BaseResultMap] +2025-12-22 10:07:35.625 [Thread-8] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"] +2025-12-22 10:07:35.794 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ MTKJ PAY 支付系统正在启动... ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:07:35.966 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 24824 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 10:07:35.967 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev" +2025-12-22 10:07:36.518 [restartedMain] WARN org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.mtkj.mtkjpay]' package. Please check your configuration. +2025-12-22 10:07:36.701 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 10:07:36.702 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 10:07:36.702 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 10:07:36.755 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 10:07:36.901 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url +2025-12-22 10:07:36.902 [restartedMain] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] +2025-12-22 10:07:36.947 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. + +Reason: Failed to determine suitable jdbc url + + +Action: + +Consider the following: + If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. + If you have database settings to be loaded from a particular profile you may need to activate it (the profiles dev are currently active). + +2025-12-22 10:07:36.950 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Generic.class]: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:643) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception with message: Failed to determine suitable jdbc url + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) + ... 22 common frames omitted +Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine suitable jdbc url + at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineUrl(DataSourceProperties.java:232) + at org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails.getJdbcUrl(PropertiesJdbcConnectionDetails.java:44) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:56) + at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Generic.dataSource(DataSourceConfiguration.java:193) + 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) + ... 23 common frames omitted +2025-12-22 10:07:39.228 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ MTKJ PAY 支付系统正在启动... ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:07:39.266 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 24824 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 10:07:39.266 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev" +2025-12-22 10:07:39.571 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 10:07:39.571 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 10:07:39.571 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 10:07:39.588 [restartedMain] INFO o.a.c.c.ContainerBase.[Tomcat-1].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 10:07:39.604 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 10:07:39.604 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 10:07:39.606 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 10:07:39.606 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025 +2025-12-22 10:07:39.606 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成,URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai +2025-12-22 10:07:39.813 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient,配置JSON消息转换器 +2025-12-22 10:07:39.816 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成 +2025-12-22 10:07:39.874 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许所有来源 +2025-12-22 10:07:39.874 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成 +2025-12-22 10:07:39.942 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"] +2025-12-22 10:07:39.949 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 0.715 seconds (process running for 249.333) +2025-12-22 10:07:39.953 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║ +║ ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用信息 ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用名称: {:<45} ║ +║ 运行环境: {:<45} ║ +║ 服务端口: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 访问地址 ║ +╠══════════════════════════════════════════════════════════╣ +║ 后端服务: {:<45} ║ +║ API接口: {:<45} ║ +║ Druid监控: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 状态: 🟢 服务运行中,可以接收请求 ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:07:39.953 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +📌 提示: + - 前端代理地址: http://localhost:3000 + - 后端API地址: http://localhost:8082//api + - 图片上传接口: http://localhost:8082//api/product/upload/image + - 商品管理接口: http://localhost:8082//api/product + +2025-12-22 10:07:54.306 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final +2025-12-22 10:07:54.344 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 25772 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 10:07:54.344 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev" +2025-12-22 10:07:55.915 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 10:07:55.916 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 10:07:55.917 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 10:07:55.977 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 10:07:56.063 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 10:07:56.066 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 10:07:56.071 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 10:07:56.072 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025 +2025-12-22 10:07:56.095 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成,URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai +2025-12-22 10:07:56.520 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient,配置JSON消息转换器 +2025-12-22 10:07:56.668 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成 +2025-12-22 10:07:56.787 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许所有来源 +2025-12-22 10:07:56.790 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成 +2025-12-22 10:07:57.292 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"] +2025-12-22 10:07:57.314 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 3.509 seconds (process running for 4.261) +2025-12-22 10:07:57.317 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║ +║ ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用信息 ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用名称: {:<45} ║ +║ 运行环境: {:<45} ║ +║ 服务端口: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 访问地址 ║ +╠══════════════════════════════════════════════════════════╣ +║ 后端服务: {:<45} ║ +║ API接口: {:<45} ║ +║ Druid监控: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 状态: 🟢 服务运行中,可以接收请求 ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 10:07:57.317 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +📌 提示: + - 前端代理地址: http://localhost:3000 + - 后端API地址: http://localhost:8082//api + - 图片上传接口: http://localhost:8082//api/product/upload/image + - 商品管理接口: http://localhost:8082//api/product + +2025-12-22 10:07:57.320 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null + at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92) + at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163) + at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98) + at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137) + at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) + at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75) + at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) + at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) +2025-12-22 10:08:01.510 [http-nio-8082-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-12-22 10:08:01.849 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.controller.ProductController - 创建商品请求:CreateProductRequestDTO(name=名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, price=20, mainImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg, mainImages=[https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg], status=ACTIVE, shopId=10001, skus=[CreateProductRequestDTO.CreateProductSkuDTO(sku= 要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好, price=9.9, currency=USD, stock=0, salesAttrs=要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好, skuImage=null, weight=60, size=8952, specification=null, status=ACTIVE)]) +2025-12-22 10:08:04.105 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建商品,商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, 店铺ID: 10001, SKU数量: 1 +2025-12-22 10:08:04.111 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品主图(多图): ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg"] +2025-12-22 10:08:04.171 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 10:08:04.179 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - ==> Preparing: INSERT INTO mt_product ( name, price, main_image, status, shop_id, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 10:08:04.197 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - ==> Parameters: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人(String), 20(BigDecimal), ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00aa8c0-6e74-48cc-a6a4-38d1984e594f.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b2cf68c7-967b-4c6f-9f8f-b7fd9a69d230.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/c9e6bdb6-6b54-4599-b440-3ef50038d20a.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/af5b70f0-f3ac-4c6b-825b-96e93a3f0610.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/84a31e3f-a913-4aa0-92aa-f15d5880f1db.jpeg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/4f5a7c75-5156-4efa-83d8-fbd45e6ef6af.jpeg"](String), ACTIVE(String), 10001(Long), 2025-12-22T10:08:04.171337300(LocalDateTime), 2025-12-22T10:08:04.172510500(LocalDateTime) +2025-12-22 10:08:04.281 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - <== Updates: 1 +2025-12-22 10:08:04.285 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品基础信息插入成功,商品ID: 1 +2025-12-22 10:08:04.286 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建SKU,数量: 1 +2025-12-22 10:08:04.287 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 10:08:04.287 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sales_attrs, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 10:08:04.288 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 1(Long), 要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好(String), 9.9(BigDecimal), USD(String), 0(Integer), 要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好(String), 60(BigDecimal), 8952(String), ACTIVE(String), 2025-12-22T10:08:04.287238100(LocalDateTime), 2025-12-22T10:08:04.287238100(LocalDateTime) +2025-12-22 10:08:04.369 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 10:08:04.369 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 1, SKU编码: 要选就选『上市品牌』的优选面料☀️上市公司严选质量才真好, SKU ID: 1 +2025-12-22 10:08:04.369 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品创建成功,商品ID: 1, 商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, SKU数量: 1 +2025-12-22 10:08:04.369 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 查询商品详情,商品ID: 1 +2025-12-22 10:08:04.371 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - ==> Preparing: SELECT id,name,price,main_image,status,shop_id,create_time,update_time FROM mt_product WHERE id=? +2025-12-22 10:08:04.371 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - ==> Parameters: 1(Long) +2025-12-22 10:08:04.425 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - <== Total: 1 +2025-12-22 10:08:04.476 [http-nio-8082-exec-1] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - ==> Preparing: SELECT id,product_id,sku,price,currency,stock,sales_attrs,sku_image,weight,size,specification,status,create_time,update_time FROM mt_product_sku WHERE (product_id = ? AND status = ?) +2025-12-22 10:08:04.476 [http-nio-8082-exec-1] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - ==> Parameters: 1(Long), ACTIVE(String) +2025-12-22 10:08:04.518 [http-nio-8082-exec-1] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - <== Total: 1 +2025-12-22 10:08:04.518 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 查询到商品SKU数量: 1, 商品ID: 1 +2025-12-22 10:08:04.522 [http-nio-8082-exec-1] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 解析商品主图(多图),数量: 6 +2025-12-22 10:08:04.524 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 获取商品详情成功,商品ID: 1, 商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, SKU数量: 1, 主图数量: 6 +2025-12-22 11:14:01.023 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b47cfabe-79e4-4cba-81f9-5e0d9b844b94.jpeg +2025-12-22 11:14:01.027 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: 图3.jpeg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b47cfabe-79e4-4cba-81f9-5e0d9b844b94.jpeg +2025-12-22 11:20:56.839 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/ca21566b-9477-4f64-9cb8-086db75d928c.jpg +2025-12-22 11:20:56.839 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-43.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ca21566b-9477-4f64-9cb8-086db75d928c.jpg +2025-12-22 11:20:56.841 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b0c4187b-ce6a-4a87-ab8e-16ee9689bf23.jpg +2025-12-22 11:20:56.841 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-30.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b0c4187b-ce6a-4a87-ab8e-16ee9689bf23.jpg +2025-12-22 11:20:56.842 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/1f028c82-937f-4e8f-94b8-ae54259db959.jpg +2025-12-22 11:20:56.842 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-21.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/1f028c82-937f-4e8f-94b8-ae54259db959.jpg +2025-12-22 11:20:56.850 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/6f8e3c23-8b25-4d60-908b-5ec2b3f7998d.jpg +2025-12-22 11:20:56.851 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-18-56.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/6f8e3c23-8b25-4d60-908b-5ec2b3f7998d.jpg +2025-12-22 11:20:56.881 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/a513d619-bacb-4078-8d03-306006fec29e.jpg +2025-12-22 11:20:56.881 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-38.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a513d619-bacb-4078-8d03-306006fec29e.jpg +2025-12-22 11:21:43.314 [http-nio-8082-exec-8] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg +2025-12-22 11:21:43.314 [http-nio-8082-exec-8] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-58.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg +2025-12-22 11:21:57.965 [http-nio-8082-exec-9] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg +2025-12-22 11:21:57.967 [http-nio-8082-exec-9] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-05.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg +2025-12-22 11:22:32.864 [http-nio-8082-exec-10] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg +2025-12-22 11:22:32.864 [http-nio-8082-exec-10] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-11.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg +2025-12-22 11:22:54.683 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg +2025-12-22 11:22:54.684 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-17.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg +2025-12-22 11:23:05.175 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg +2025-12-22 11:23:05.175 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-24.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg +2025-12-22 11:25:26.592 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.controller.ProductController - 创建商品请求:CreateProductRequestDTO(name=名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, price=20.99, mainImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ca21566b-9477-4f64-9cb8-086db75d928c.jpg, mainImages=[https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ca21566b-9477-4f64-9cb8-086db75d928c.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b0c4187b-ce6a-4a87-ab8e-16ee9689bf23.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/1f028c82-937f-4e8f-94b8-ae54259db959.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/6f8e3c23-8b25-4d60-908b-5ec2b3f7998d.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a513d619-bacb-4078-8d03-306006fec29e.jpg], status=ACTIVE, shopId=100001, skus=[CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg, weight=200, size={"length":23,"width":23,"height":23,"unit":"cm"}, specification=null, status=ACTIVE)]) +2025-12-22 11:25:26.987 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建商品,商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, 店铺ID: 100001, SKU数量: 25 +2025-12-22 11:25:26.987 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品主图(多图): ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ca21566b-9477-4f64-9cb8-086db75d928c.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b0c4187b-ce6a-4a87-ab8e-16ee9689bf23.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/1f028c82-937f-4e8f-94b8-ae54259db959.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/6f8e3c23-8b25-4d60-908b-5ec2b3f7998d.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a513d619-bacb-4078-8d03-306006fec29e.jpg"] +2025-12-22 11:25:26.988 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:26.988 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - ==> Preparing: INSERT INTO mt_product ( name, price, main_image, status, shop_id, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:26.989 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - ==> Parameters: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人(String), 20.99(BigDecimal), ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ca21566b-9477-4f64-9cb8-086db75d928c.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b0c4187b-ce6a-4a87-ab8e-16ee9689bf23.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/1f028c82-937f-4e8f-94b8-ae54259db959.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/6f8e3c23-8b25-4d60-908b-5ec2b3f7998d.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a513d619-bacb-4078-8d03-306006fec29e.jpg"](String), ACTIVE(String), 100001(Long), 2025-12-22T11:25:26.988575900(LocalDateTime), 2025-12-22T11:25:26.988575900(LocalDateTime) +2025-12-22 11:25:27.076 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.076 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品基础信息插入成功,商品ID: 2 +2025-12-22 11:25:27.076 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建SKU,数量: 25 +2025-12-22 11:25:27.077 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.079 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.080 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.077979800(LocalDateTime), 2025-12-22T11:25:27.079033700(LocalDateTime) +2025-12-22 11:25:27.153 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.153 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 2 +2025-12-22 11:25:27.155 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.155 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.155 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.155217600(LocalDateTime), 2025-12-22T11:25:27.155217600(LocalDateTime) +2025-12-22 11:25:27.258 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.258 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 3 +2025-12-22 11:25:27.259 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.259 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.260 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.259587600(LocalDateTime), 2025-12-22T11:25:27.259587600(LocalDateTime) +2025-12-22 11:25:27.340 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.340 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 4 +2025-12-22 11:25:27.341 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.341 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.342 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.341629800(LocalDateTime), 2025-12-22T11:25:27.341629800(LocalDateTime) +2025-12-22 11:25:27.416 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.416 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 5 +2025-12-22 11:25:27.418 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.418 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.419 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50e4f00e-369d-4f42-b756-06904c9194ca.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.418579800(LocalDateTime), 2025-12-22T11:25:27.418579800(LocalDateTime) +2025-12-22 11:25:27.494 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.494 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 6 +2025-12-22 11:25:27.494 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.495 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.495 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.495450400(LocalDateTime), 2025-12-22T11:25:27.495450400(LocalDateTime) +2025-12-22 11:25:27.834 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.834 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 7 +2025-12-22 11:25:27.835 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.835 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.836 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.835640900(LocalDateTime), 2025-12-22T11:25:27.835640900(LocalDateTime) +2025-12-22 11:25:27.936 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:27.937 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 8 +2025-12-22 11:25:27.937 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:27.938 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:27.938 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:27.937505800(LocalDateTime), 2025-12-22T11:25:27.937505800(LocalDateTime) +2025-12-22 11:25:28.033 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.034 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 9 +2025-12-22 11:25:28.035 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.035 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.036 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.035534(LocalDateTime), 2025-12-22T11:25:28.035534(LocalDateTime) +2025-12-22 11:25:28.130 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.130 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 10 +2025-12-22 11:25:28.130 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.131 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.131 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/fad5aced-b07e-40da-bba2-a335faaf342e.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.130417100(LocalDateTime), 2025-12-22T11:25:28.131425(LocalDateTime) +2025-12-22 11:25:28.275 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.276 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 11 +2025-12-22 11:25:28.276 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.277 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.278 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.276417800(LocalDateTime), 2025-12-22T11:25:28.276417800(LocalDateTime) +2025-12-22 11:25:28.401 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.402 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 12 +2025-12-22 11:25:28.402 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.402 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.403 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.402506900(LocalDateTime), 2025-12-22T11:25:28.402506900(LocalDateTime) +2025-12-22 11:25:28.496 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.496 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 13 +2025-12-22 11:25:28.497 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.497 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.498 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.497580500(LocalDateTime), 2025-12-22T11:25:28.497580500(LocalDateTime) +2025-12-22 11:25:28.669 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.669 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 14 +2025-12-22 11:25:28.670 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.670 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.671 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.670890900(LocalDateTime), 2025-12-22T11:25:28.670890900(LocalDateTime) +2025-12-22 11:25:28.747 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.748 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 15 +2025-12-22 11:25:28.748 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.748 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.749 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b575adf9-d5de-4898-b8e0-63cb130ae9b4.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.748650(LocalDateTime), 2025-12-22T11:25:28.748650(LocalDateTime) +2025-12-22 11:25:28.830 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.830 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 16 +2025-12-22 11:25:28.830 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.830 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.831 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.830894800(LocalDateTime), 2025-12-22T11:25:28.830894800(LocalDateTime) +2025-12-22 11:25:28.905 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.905 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 17 +2025-12-22 11:25:28.905 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.905 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.906 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.905241300(LocalDateTime), 2025-12-22T11:25:28.905241300(LocalDateTime) +2025-12-22 11:25:28.977 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:28.977 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 18 +2025-12-22 11:25:28.978 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:28.978 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:28.978 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:28.978923(LocalDateTime), 2025-12-22T11:25:28.978923(LocalDateTime) +2025-12-22 11:25:29.055 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.055 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 19 +2025-12-22 11:25:29.056 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.056 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.057 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.056486400(LocalDateTime), 2025-12-22T11:25:29.056486400(LocalDateTime) +2025-12-22 11:25:29.164 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.164 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 20 +2025-12-22 11:25:29.164 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.164 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.165 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/ed85cee7-767f-4789-a7b4-debc4d1f51e7.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.164366(LocalDateTime), 2025-12-22T11:25:29.164366(LocalDateTime) +2025-12-22 11:25:29.238 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.240 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 21 +2025-12-22 11:25:29.240 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.241 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.241 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.240446500(LocalDateTime), 2025-12-22T11:25:29.240446500(LocalDateTime) +2025-12-22 11:25:29.329 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.329 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, SKU ID: 22 +2025-12-22 11:25:29.329 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.329 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.330 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.329232300(LocalDateTime), 2025-12-22T11:25:29.329232300(LocalDateTime) +2025-12-22 11:25:29.457 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.457 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, SKU ID: 23 +2025-12-22 11:25:29.458 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.458 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.458 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.458297700(LocalDateTime), 2025-12-22T11:25:29.458297700(LocalDateTime) +2025-12-22 11:25:29.536 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.536 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, SKU ID: 24 +2025-12-22 11:25:29.536 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.537 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.537 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.536586700(LocalDateTime), 2025-12-22T11:25:29.536586700(LocalDateTime) +2025-12-22 11:25:29.612 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.612 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, SKU ID: 25 +2025-12-22 11:25:29.612 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:25:29.612 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:25:29.613 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 2(Long), 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e0890689-6772-4334-8230-ec1cf1fd0626.jpg(String), 200(BigDecimal), {"length":23,"width":23,"height":23,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:25:29.612877800(LocalDateTime), 2025-12-22T11:25:29.612877800(LocalDateTime) +2025-12-22 11:25:29.717 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:25:29.717 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 2, SKU编码: 【✅性价比首选】天空灰+天空灰+米白色【⭐️毛巾实惠3条装】, SKU ID: 26 +2025-12-22 11:25:29.717 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品创建成功,商品ID: 2, 商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, SKU数量: 25 +2025-12-22 11:25:29.717 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 查询商品详情,商品ID: 2 +2025-12-22 11:25:29.717 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - ==> Preparing: SELECT id,name,price,main_image,status,shop_id,create_time,update_time FROM mt_product WHERE id=? +2025-12-22 11:25:29.718 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - ==> Parameters: 2(Long) +2025-12-22 11:25:29.764 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - <== Total: 1 +2025-12-22 11:25:29.764 [http-nio-8082-exec-7] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - ==> Preparing: SELECT id,product_id,sku,price,currency,stock,sales_attrs,sku_image,weight,size,specification,status,create_time,update_time FROM mt_product_sku WHERE (product_id = ? AND status = ?) +2025-12-22 11:25:29.765 [http-nio-8082-exec-7] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - ==> Parameters: 2(Long), ACTIVE(String) +2025-12-22 11:25:29.832 [http-nio-8082-exec-7] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - <== Total: 25 +2025-12-22 11:25:29.833 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 查询到商品SKU数量: 25, 商品ID: 2 +2025-12-22 11:25:29.834 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 解析商品主图(多图),数量: 5 +2025-12-22 11:25:29.839 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 获取商品详情成功,商品ID: 2, 商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, SKU数量: 25, 主图数量: 5 +2025-12-22 11:30:30.323 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg +2025-12-22 11:30:30.323 [http-nio-8082-exec-5] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-58.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg +2025-12-22 11:31:11.714 [http-nio-8082-exec-9] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/e82397de-2df8-46de-867f-e8ada463f658.jpg +2025-12-22 11:31:11.714 [http-nio-8082-exec-9] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-43.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e82397de-2df8-46de-867f-e8ada463f658.jpg +2025-12-22 11:31:11.717 [http-nio-8082-exec-8] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/d612a6d1-974a-4f8f-b178-2282df46da9c.jpg +2025-12-22 11:31:11.717 [http-nio-8082-exec-8] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-30.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/d612a6d1-974a-4f8f-b178-2282df46da9c.jpg +2025-12-22 11:31:11.720 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/3b392540-7406-400e-96f4-c70fb36d2ff1.jpg +2025-12-22 11:31:11.721 [http-nio-8082-exec-3] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-21.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/3b392540-7406-400e-96f4-c70fb36d2ff1.jpg +2025-12-22 11:31:11.754 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/b00613a1-ddd1-4691-aed2-a3172f330741.jpg +2025-12-22 11:31:11.755 [http-nio-8082-exec-6] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-19-38.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00613a1-ddd1-4691-aed2-a3172f330741.jpg +2025-12-22 11:31:11.910 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/2d744c5f-db3a-4c9d-acf9-e94b228cb3a3.jpg +2025-12-22 11:31:11.911 [http-nio-8082-exec-4] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-18-56.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d744c5f-db3a-4c9d-acf9-e94b228cb3a3.jpg +2025-12-22 11:31:56.619 [http-nio-8082-exec-10] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg +2025-12-22 11:31:56.620 [http-nio-8082-exec-10] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-05.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg +2025-12-22 11:32:11.561 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg +2025-12-22 11:32:11.561 [http-nio-8082-exec-1] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-11.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg +2025-12-22 11:32:28.537 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.service.impl.OssServiceImpl - 文件上传成功,objectName: 2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg +2025-12-22 11:32:28.538 [http-nio-8082-exec-2] INFO com.mtkj.mtpay.controller.ProductController - 图片上传成功,文件名: Snipaste_2025-12-22_11-20-17.jpg, URL: https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg +2025-12-22 11:33:15.019 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.controller.ProductController - 创建商品请求:CreateProductRequestDTO(name=名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, price=22.98, mainImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e82397de-2df8-46de-867f-e8ada463f658.jpg, mainImages=[https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e82397de-2df8-46de-867f-e8ada463f658.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/d612a6d1-974a-4f8f-b178-2282df46da9c.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/3b392540-7406-400e-96f4-c70fb36d2ff1.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00613a1-ddd1-4691-aed2-a3172f330741.jpg, https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d744c5f-db3a-4c9d-acf9-e94b228cb3a3.jpg], status=ACTIVE, shopId=100001, skus=[CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=13.32, currency=MYR, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=191.72, currency=PHP, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=102.38, currency=THB, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=85909.35, currency=VND, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE), CreateProductRequestDTO.CreateProductSkuDTO(sku=【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, price=4.22, currency=SGD, stock=9999, salesAttrs=null, skuImage=https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg, weight=200, size={"length":30,"width":30,"height":30,"unit":"cm"}, specification=null, status=ACTIVE)]) +2025-12-22 11:33:15.117 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建商品,商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, 店铺ID: 100001, SKU数量: 20 +2025-12-22 11:33:15.117 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品主图(多图): ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e82397de-2df8-46de-867f-e8ada463f658.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/d612a6d1-974a-4f8f-b178-2282df46da9c.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/3b392540-7406-400e-96f4-c70fb36d2ff1.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00613a1-ddd1-4691-aed2-a3172f330741.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d744c5f-db3a-4c9d-acf9-e94b228cb3a3.jpg"] +2025-12-22 11:33:15.117 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.118 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - ==> Preparing: INSERT INTO mt_product ( name, price, main_image, status, shop_id, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.118 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - ==> Parameters: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人(String), 22.98(BigDecimal), ["https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/e82397de-2df8-46de-867f-e8ada463f658.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/d612a6d1-974a-4f8f-b178-2282df46da9c.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/3b392540-7406-400e-96f4-c70fb36d2ff1.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/b00613a1-ddd1-4691-aed2-a3172f330741.jpg","https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/2d744c5f-db3a-4c9d-acf9-e94b228cb3a3.jpg"](String), ACTIVE(String), 100001(Long), 2025-12-22T11:33:15.117509400(LocalDateTime), 2025-12-22T11:33:15.117509400(LocalDateTime) +2025-12-22 11:33:15.194 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.194 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品基础信息插入成功,商品ID: 3 +2025-12-22 11:33:15.194 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 开始创建SKU,数量: 20 +2025-12-22 11:33:15.195 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.195 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.195 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.195590100(LocalDateTime), 2025-12-22T11:33:15.195590100(LocalDateTime) +2025-12-22 11:33:15.269 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.269 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 27 +2025-12-22 11:33:15.270 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.270 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.270 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.270591400(LocalDateTime), 2025-12-22T11:33:15.270591400(LocalDateTime) +2025-12-22 11:33:15.344 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.344 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 28 +2025-12-22 11:33:15.345 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.345 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.345 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.345358100(LocalDateTime), 2025-12-22T11:33:15.345358100(LocalDateTime) +2025-12-22 11:33:15.424 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.425 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 29 +2025-12-22 11:33:15.425 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.425 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.426 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.425665900(LocalDateTime), 2025-12-22T11:33:15.425665900(LocalDateTime) +2025-12-22 11:33:15.499 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.499 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 30 +2025-12-22 11:33:15.499 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.500 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.500 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/52f023e3-df60-4053-bacd-ce8e87f8ef60.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.499431800(LocalDateTime), 2025-12-22T11:33:15.499431800(LocalDateTime) +2025-12-22 11:33:15.577 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.577 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+浅水蓝+天空灰【⭐️毛巾实惠3条装】, SKU ID: 31 +2025-12-22 11:33:15.577 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.577 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.578 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.577347100(LocalDateTime), 2025-12-22T11:33:15.577347100(LocalDateTime) +2025-12-22 11:33:15.666 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.666 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 32 +2025-12-22 11:33:15.667 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.667 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.668 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.667236900(LocalDateTime), 2025-12-22T11:33:15.667236900(LocalDateTime) +2025-12-22 11:33:15.744 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.744 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 33 +2025-12-22 11:33:15.745 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.745 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.745 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.745119800(LocalDateTime), 2025-12-22T11:33:15.745119800(LocalDateTime) +2025-12-22 11:33:15.827 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.827 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 34 +2025-12-22 11:33:15.828 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.828 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.828 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.828163100(LocalDateTime), 2025-12-22T11:33:15.828163100(LocalDateTime) +2025-12-22 11:33:15.901 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.901 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 35 +2025-12-22 11:33:15.901 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.901 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.902 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/5cd2bf84-2b64-4ce1-97af-c62ba577ef02.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.901444500(LocalDateTime), 2025-12-22T11:33:15.901444500(LocalDateTime) +2025-12-22 11:33:15.987 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:15.987 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水蓝【⭐️毛巾实惠3条装】, SKU ID: 36 +2025-12-22 11:33:15.988 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:15.988 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:15.988 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:15.988802400(LocalDateTime), 2025-12-22T11:33:15.988802400(LocalDateTime) +2025-12-22 11:33:16.068 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.068 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 37 +2025-12-22 11:33:16.068 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.068 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.069 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.068586300(LocalDateTime), 2025-12-22T11:33:16.068586300(LocalDateTime) +2025-12-22 11:33:16.143 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.143 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 38 +2025-12-22 11:33:16.143 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.143 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.143 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.143536500(LocalDateTime), 2025-12-22T11:33:16.143536500(LocalDateTime) +2025-12-22 11:33:16.215 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.215 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 39 +2025-12-22 11:33:16.215 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.216 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.216 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.215696100(LocalDateTime), 2025-12-22T11:33:16.216718700(LocalDateTime) +2025-12-22 11:33:16.290 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.290 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 40 +2025-12-22 11:33:16.290 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.291 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.291 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/a98fdf7a-68d9-4167-88f0-e837418bb3ef.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.290223600(LocalDateTime), 2025-12-22T11:33:16.290223600(LocalDateTime) +2025-12-22 11:33:16.367 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.367 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】米白色+米白色+浅水灰【⭐️毛巾实惠3条装】, SKU ID: 41 +2025-12-22 11:33:16.367 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.367 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.368 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 13.32(BigDecimal), MYR(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.367107200(LocalDateTime), 2025-12-22T11:33:16.367107200(LocalDateTime) +2025-12-22 11:33:16.445 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.445 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 42 +2025-12-22 11:33:16.446 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.446 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.446 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 191.72(BigDecimal), PHP(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.446388300(LocalDateTime), 2025-12-22T11:33:16.446388300(LocalDateTime) +2025-12-22 11:33:16.521 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.522 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 43 +2025-12-22 11:33:16.522 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.522 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.522 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 102.38(BigDecimal), THB(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.522278300(LocalDateTime), 2025-12-22T11:33:16.522278300(LocalDateTime) +2025-12-22 11:33:16.605 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.605 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 44 +2025-12-22 11:33:16.605 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.605 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.606 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 85909.35(BigDecimal), VND(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.605348700(LocalDateTime), 2025-12-22T11:33:16.605348700(LocalDateTime) +2025-12-22 11:33:16.679 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.679 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 45 +2025-12-22 11:33:16.679 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.config.MyMetaObjectHandler - 开始插入填充... +2025-12-22 11:33:16.679 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Preparing: INSERT INTO mt_product_sku ( product_id, sku, price, currency, stock, sku_image, weight, size, status, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) +2025-12-22 11:33:16.680 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - ==> Parameters: 3(Long), 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】(String), 4.22(BigDecimal), SGD(String), 9999(Integer), https://mtkj2025.oss-cn-hangzhou.aliyuncs.com/2025/12/22/50b91724-3516-4002-88a4-452e576cc000.jpg(String), 200(BigDecimal), {"length":30,"width":30,"height":30,"unit":"cm"}(String), ACTIVE(String), 2025-12-22T11:33:16.679697(LocalDateTime), 2025-12-22T11:33:16.679697(LocalDateTime) +2025-12-22 11:33:16.754 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductSkuMapper.insert - <== Updates: 1 +2025-12-22 11:33:16.754 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - SKU创建成功,商品ID: 3, SKU编码: 【✅性价比首选】浅水蓝+浅水蓝+米白色【⭐️毛巾实惠3条装】, SKU ID: 46 +2025-12-22 11:33:16.754 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 商品创建成功,商品ID: 3, 商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, SKU数量: 20 +2025-12-22 11:33:16.754 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 查询商品详情,商品ID: 3 +2025-12-22 11:33:16.754 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - ==> Preparing: SELECT id,name,price,main_image,status,shop_id,create_time,update_time FROM mt_product WHERE id=? +2025-12-22 11:33:16.754 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - ==> Parameters: 3(Long) +2025-12-22 11:33:16.793 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.mapper.MtProductMapper.selectById - <== Total: 1 +2025-12-22 11:33:16.793 [http-nio-8082-exec-7] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - ==> Preparing: SELECT id,product_id,sku,price,currency,stock,sales_attrs,sku_image,weight,size,specification,status,create_time,update_time FROM mt_product_sku WHERE (product_id = ? AND status = ?) +2025-12-22 11:33:16.793 [http-nio-8082-exec-7] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - ==> Parameters: 3(Long), ACTIVE(String) +2025-12-22 11:33:16.833 [http-nio-8082-exec-7] DEBUG c.mtkj.mtpay.mapper.MtProductSkuMapper.selectList - <== Total: 20 +2025-12-22 11:33:16.833 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 查询到商品SKU数量: 20, 商品ID: 3 +2025-12-22 11:33:16.833 [http-nio-8082-exec-7] DEBUG com.mtkj.mtpay.service.impl.ProductServiceImpl - 解析商品主图(多图),数量: 5 +2025-12-22 11:33:16.834 [http-nio-8082-exec-7] INFO com.mtkj.mtpay.service.impl.ProductServiceImpl - 获取商品详情成功,商品ID: 3, 商品名称: 名创优品毛巾女2025新款洗澡男士浴巾比全棉100纯棉吸水干发成人, SKU数量: 20, 主图数量: 5 +2025-12-22 11:42:27.121 [Thread-8] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"] +2025-12-22 11:42:27.221 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ MTKJ PAY 支付系统正在启动... ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 11:42:27.294 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 25772 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 11:42:27.295 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev" +2025-12-22 11:42:27.799 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 11:42:27.799 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 11:42:27.799 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 11:42:27.825 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 11:42:27.861 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 11:42:27.861 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 11:42:27.865 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 11:42:27.866 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025 +2025-12-22 11:42:27.866 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成,URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai +2025-12-22 11:42:28.221 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient,配置JSON消息转换器 +2025-12-22 11:42:28.226 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成 +2025-12-22 11:42:28.237 [restartedMain] 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 'productController': Unsatisfied dependency expressed through field 'productService': No qualifying bean of type 'com.mtkj.mtpay.service.ProductService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} +2025-12-22 11:42:28.239 [restartedMain] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat] +2025-12-22 11:42:28.292 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +Field productService in com.mtkj.mtpay.controller.ProductController required a bean of type 'com.mtkj.mtpay.service.ProductService' that could not be found. + +The injection point has the following annotations: + - @org.springframework.beans.factory.annotation.Autowired(required=true) + + +Action: + +Consider defining a bean of type 'com.mtkj.mtpay.service.ProductService' in your configuration. + +2025-12-22 11:42:28.294 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productController': Unsatisfied dependency expressed through field 'productService': No qualifying bean of type 'com.mtkj.mtpay.service.ProductService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) + 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:946) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) + at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:33) + 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.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mtkj.mtpay.service.ProductService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} + at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1878) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1404) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) + ... 23 common frames omitted +2025-12-22 11:42:29.742 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ MTKJ PAY 支付系统正在启动... ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 11:42:29.774 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 25772 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY) +2025-12-22 11:42:29.774 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev" +2025-12-22 11:42:30.049 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"] +2025-12-22 11:42:30.049 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat] +2025-12-22 11:42:30.049 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16] +2025-12-22 11:42:30.065 [restartedMain] INFO o.a.c.c.ContainerBase.[Tomcat-1].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-12-22 11:42:30.083 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件,数据库类型: MYSQL +2025-12-22 11:42:30.083 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成 +2025-12-22 11:42:30.085 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源 +2025-12-22 11:42:30.085 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025 +2025-12-22 11:42:30.086 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成,URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai +2025-12-22 11:42:30.277 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient,配置JSON消息转换器 +2025-12-22 11:42:30.278 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成 +2025-12-22 11:42:30.339 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许所有来源 +2025-12-22 11:42:30.339 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成 +2025-12-22 11:42:30.402 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"] +2025-12-22 11:42:30.409 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 0.664 seconds (process running for 5677.355) +2025-12-22 11:42:30.411 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║ +║ ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用信息 ║ +╠══════════════════════════════════════════════════════════╣ +║ 应用名称: {:<45} ║ +║ 运行环境: {:<45} ║ +║ 服务端口: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 访问地址 ║ +╠══════════════════════════════════════════════════════════╣ +║ 后端服务: {:<45} ║ +║ API接口: {:<45} ║ +║ Druid监控: {:<45} ║ +╠══════════════════════════════════════════════════════════╣ +║ 状态: 🟢 服务运行中,可以接收请求 ║ +╚══════════════════════════════════════════════════════════╝ + +2025-12-22 11:42:30.411 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - +📌 提示: + - 前端代理地址: http://localhost:3000 + - 后端API地址: http://localhost:8082//api + - 图片上传接口: http://localhost:8082//api/product/upload/image + - 商品管理接口: http://localhost:8082//api/product + diff --git a/mt-pay/logs/mt-pay-error.2025-12-19.log b/mt-pay/logs/mt-pay-error.2025-12-19.log deleted file mode 100644 index a68054b..0000000 --- a/mt-pay/logs/mt-pay-error.2025-12-19.log +++ /dev/null @@ -1,193 +0,0 @@ -2025-12-19 18:31:44.610 [main] ERROR org.springframework.boot.SpringApplication - Application run failed -java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String - at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) - at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) - at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) - at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) - at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) - at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1442) - at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) - at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) - at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) - at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) - at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:247) - at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:378) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:383) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:378) - at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) - at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) - at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) - at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) - at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) - at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) - at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:377) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:290) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:289) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:279) - at java.base/java.util.Optional.orElseGet(Optional.java:364) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:278) - at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) - at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) - at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122) - at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) - at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) - at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) - at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) -2025-12-19 18:31:44.617 [main] ERROR o.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [com.mtkj.mtpay.MtPayApplicationTests@3138953b] -java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@1756f7cc testClass = com.mtkj.mtpay.MtPayApplicationTests, locations = [], classes = [com.mtkj.mtpay.MtPayApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@6933b6c6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@1f9e9475, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@23941fb4, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@5c86dbc5, org.springframework.boot.test.context.SpringBootTestAnnotation@95981886], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) - at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) - at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) - at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) - at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:247) - at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:378) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:383) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:378) - at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) - at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) - at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) - at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) - at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) - at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) - at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:377) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:290) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:289) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:279) - at java.base/java.util.Optional.orElseGet(Optional.java:364) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:278) - at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) - at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) - at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122) - at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) - at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) - at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) - at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) -Caused by: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String - at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) - at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) - at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) - at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) - at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) - at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1442) - at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) - ... 73 common frames omitted diff --git a/mt-pay/logs/mt-pay.2025-12-19.log b/mt-pay/logs/mt-pay.2025-12-19.log deleted file mode 100644 index fb38076..0000000 --- a/mt-pay/logs/mt-pay.2025-12-19.log +++ /dev/null @@ -1,197 +0,0 @@ -2025-12-19 18:31:43.770 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final -2025-12-19 18:31:43.792 [main] INFO com.mtkj.mtpay.MtPayApplicationTests - Starting MtPayApplicationTests using Java 17.0.12 with PID 20120 (started by 18969 in E:\MTKJPAY\mt-pay) -2025-12-19 18:31:43.793 [main] INFO com.mtkj.mtpay.MtPayApplicationTests - No active profile set, falling back to 1 default profile: "default" -2025-12-19 18:31:44.587 [main] WARN o.s.w.context.support.GenericWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String -2025-12-19 18:31:44.610 [main] ERROR org.springframework.boot.SpringApplication - Application run failed -java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String - at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) - at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) - at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) - at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) - at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) - at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1442) - at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) - at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) - at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) - at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) - at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:247) - at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:378) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:383) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:378) - at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) - at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) - at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) - at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) - at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) - at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) - at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:377) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:290) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:289) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:279) - at java.base/java.util.Optional.orElseGet(Optional.java:364) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:278) - at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) - at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) - at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122) - at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) - at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) - at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) - at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) -2025-12-19 18:31:44.617 [main] ERROR o.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [com.mtkj.mtpay.MtPayApplicationTests@3138953b] -java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@1756f7cc testClass = com.mtkj.mtpay.MtPayApplicationTests, locations = [], classes = [com.mtkj.mtpay.MtPayApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@6933b6c6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@1f9e9475, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@23941fb4, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@5c86dbc5, org.springframework.boot.test.context.SpringBootTestAnnotation@95981886], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) - at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) - at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) - at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) - at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:247) - at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:378) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:383) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:378) - at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) - at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) - at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) - at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) - at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) - at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) - at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) - at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:377) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:290) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:289) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:279) - at java.base/java.util.Optional.orElseGet(Optional.java:364) - at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:278) - at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) - at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) - at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141) - at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103) - at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85) - at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47) - at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148) - at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122) - at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) - at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) - at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) - at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) -Caused by: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String - at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) - at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) - at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) - at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) - at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) - at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) - at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1442) - at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) - at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) - at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) - ... 73 common frames omitted diff --git a/mt-pay/pom.xml b/mt-pay/pom.xml index 295ff68..54faaa0 100644 --- a/mt-pay/pom.xml +++ b/mt-pay/pom.xml @@ -3,10 +3,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.springframework.boot - spring-boot-starter-parent - 3.2.0 - + com.mtkj + MTKJPAY + 0.0.1-SNAPSHOT + ../pom.xml com.mtkj mt-pay @@ -52,11 +52,29 @@ runtime - + com.baomidou mybatis-plus-boot-starter - 3.5.7 + ${mybatis-plus.version} + + + + org.mybatis + mybatis-spring + + + + commons-logging + commons-logging + + + + + + org.mybatis + mybatis-spring + ${mybatis-spring.version} @@ -64,6 +82,13 @@ com.aliyun.oss aliyun-sdk-oss 3.17.4 + + + + commons-logging + commons-logging + + @@ -71,6 +96,13 @@ com.alibaba druid-spring-boot-3-starter 1.2.20 + + + + commons-logging + commons-logging + + diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/config/DruidDataSourceConfig.java b/mt-pay/src/main/java/com/mtkj/mtpay/config/DruidDataSourceConfig.java index 9fb1d92..4f50265 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/config/DruidDataSourceConfig.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/config/DruidDataSourceConfig.java @@ -2,8 +2,9 @@ package com.mtkj.mtpay.config; import com.alibaba.druid.pool.DruidDataSource; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @@ -16,19 +17,74 @@ import javax.sql.DataSource; */ @Slf4j @Configuration +@EnableConfigurationProperties({DruidMasterProperties.class, DruidSlaveProperties.class}) public class DruidDataSourceConfig { + @Autowired + private DruidMasterProperties masterProperties; + /** * 主数据源配置 * 使用@Primary注解确保这是默认数据源 */ @Bean @Primary - @ConfigurationProperties(prefix = "spring.datasource.druid.master") public DataSource masterDataSource() { log.info("初始化Druid主数据源"); + log.info("配置属性 - URL: {}, Username: {}", masterProperties.getUrl(), masterProperties.getUsername()); + + if (masterProperties.getUrl() == null || masterProperties.getUrl().isEmpty()) { + log.error("数据源URL未配置!请检查 application-dev.yml 中的 spring.datasource.druid.master.url 配置"); + throw new IllegalStateException("数据源URL未配置"); + } + DruidDataSource dataSource = new DruidDataSource(); - log.info("Druid主数据源配置完成"); + + // 手动设置配置属性 + dataSource.setUrl(masterProperties.getUrl()); + dataSource.setUsername(masterProperties.getUsername()); + dataSource.setPassword(masterProperties.getPassword()); + if (masterProperties.getInitialSize() != null) { + dataSource.setInitialSize(masterProperties.getInitialSize()); + } + if (masterProperties.getMinIdle() != null) { + dataSource.setMinIdle(masterProperties.getMinIdle()); + } + if (masterProperties.getMaxActive() != null) { + dataSource.setMaxActive(masterProperties.getMaxActive()); + } + if (masterProperties.getMaxWait() != null) { + dataSource.setMaxWait(masterProperties.getMaxWait()); + } + if (masterProperties.getConnectTimeout() != null) { + dataSource.setConnectTimeout(masterProperties.getConnectTimeout()); + } + if (masterProperties.getSocketTimeout() != null) { + dataSource.setSocketTimeout(masterProperties.getSocketTimeout()); + } + if (masterProperties.getTimeBetweenEvictionRunsMillis() != null) { + dataSource.setTimeBetweenEvictionRunsMillis(masterProperties.getTimeBetweenEvictionRunsMillis()); + } + if (masterProperties.getMinEvictableIdleTimeMillis() != null) { + dataSource.setMinEvictableIdleTimeMillis(masterProperties.getMinEvictableIdleTimeMillis()); + } + if (masterProperties.getMaxEvictableIdleTimeMillis() != null) { + dataSource.setMaxEvictableIdleTimeMillis(masterProperties.getMaxEvictableIdleTimeMillis()); + } + if (masterProperties.getValidationQuery() != null) { + dataSource.setValidationQuery(masterProperties.getValidationQuery()); + } + if (masterProperties.getTestWhileIdle() != null) { + dataSource.setTestWhileIdle(masterProperties.getTestWhileIdle()); + } + if (masterProperties.getTestOnBorrow() != null) { + dataSource.setTestOnBorrow(masterProperties.getTestOnBorrow()); + } + if (masterProperties.getTestOnReturn() != null) { + dataSource.setTestOnReturn(masterProperties.getTestOnReturn()); + } + + log.info("Druid主数据源配置完成,URL: {}", dataSource.getUrl()); return dataSource; } @@ -38,10 +94,54 @@ public class DruidDataSourceConfig { */ @Bean(name = "slaveDataSource") @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true") - @ConfigurationProperties(prefix = "spring.datasource.druid.slave") - public DataSource slaveDataSource() { + public DataSource slaveDataSource(@Autowired DruidSlaveProperties slaveProperties) { log.info("初始化Druid从数据源"); DruidDataSource dataSource = new DruidDataSource(); + + // 手动设置配置属性 + dataSource.setUrl(slaveProperties.getUrl()); + dataSource.setUsername(slaveProperties.getUsername()); + dataSource.setPassword(slaveProperties.getPassword()); + if (slaveProperties.getInitialSize() != null) { + dataSource.setInitialSize(slaveProperties.getInitialSize()); + } + if (slaveProperties.getMinIdle() != null) { + dataSource.setMinIdle(slaveProperties.getMinIdle()); + } + if (slaveProperties.getMaxActive() != null) { + dataSource.setMaxActive(slaveProperties.getMaxActive()); + } + if (slaveProperties.getMaxWait() != null) { + dataSource.setMaxWait(slaveProperties.getMaxWait()); + } + if (slaveProperties.getConnectTimeout() != null) { + dataSource.setConnectTimeout(slaveProperties.getConnectTimeout()); + } + if (slaveProperties.getSocketTimeout() != null) { + dataSource.setSocketTimeout(slaveProperties.getSocketTimeout()); + } + if (slaveProperties.getTimeBetweenEvictionRunsMillis() != null) { + dataSource.setTimeBetweenEvictionRunsMillis(slaveProperties.getTimeBetweenEvictionRunsMillis()); + } + if (slaveProperties.getMinEvictableIdleTimeMillis() != null) { + dataSource.setMinEvictableIdleTimeMillis(slaveProperties.getMinEvictableIdleTimeMillis()); + } + if (slaveProperties.getMaxEvictableIdleTimeMillis() != null) { + dataSource.setMaxEvictableIdleTimeMillis(slaveProperties.getMaxEvictableIdleTimeMillis()); + } + if (slaveProperties.getValidationQuery() != null) { + dataSource.setValidationQuery(slaveProperties.getValidationQuery()); + } + if (slaveProperties.getTestWhileIdle() != null) { + dataSource.setTestWhileIdle(slaveProperties.getTestWhileIdle()); + } + if (slaveProperties.getTestOnBorrow() != null) { + dataSource.setTestOnBorrow(slaveProperties.getTestOnBorrow()); + } + if (slaveProperties.getTestOnReturn() != null) { + dataSource.setTestOnReturn(slaveProperties.getTestOnReturn()); + } + log.info("Druid从数据源配置完成"); return dataSource; } diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/controller/ProductController.java b/mt-pay/src/main/java/com/mtkj/mtpay/controller/ProductController.java index 7660462..4619d5a 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/controller/ProductController.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/controller/ProductController.java @@ -40,7 +40,7 @@ public class ProductController { } /** - * 获取商品详情 + * 获取商品详情(通过商品ID) */ @GetMapping("/{id}") public Result getProduct(@PathVariable Long id) { @@ -49,6 +49,24 @@ public class ProductController { return Result.success(product); } + /** + * 根据链接码获取商品详情(用于通过短链接访问商品) + */ + @GetMapping("/link/{linkCode}") + public Result getProductByLinkCode(@PathVariable String linkCode) { + log.info("根据链接码获取商品详情,链接码:{}", linkCode); + try { + // 根据链接码获取商品ID + Long productId = productService.getProductIdByLinkCode(linkCode); + // 获取商品详情 + ProductResponseDTO product = productService.getProductById(productId); + return Result.success(product); + } catch (Exception e) { + log.error("根据链接码获取商品详情失败,链接码:{}", linkCode, e); + return Result.fail("链接无效或已过期"); + } + } + /** * 获取商品详情页URL */ diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/dto/request/CreateProductRequestDTO.java b/mt-pay/src/main/java/com/mtkj/mtpay/dto/request/CreateProductRequestDTO.java index 1c1108c..6b74461 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/dto/request/CreateProductRequestDTO.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/dto/request/CreateProductRequestDTO.java @@ -108,9 +108,9 @@ public class CreateProductRequestDTO implements Serializable { private BigDecimal weight; /** - * 大小/尺寸(JSON格式) + * 大小/尺寸(JSON格式,如:{"length":30,"width":30,"height":30,"unit":"cm"}) */ - @Size(max = 200, message = "尺寸JSON长度不能超过200") + @Size(max = 500, message = "尺寸JSON长度不能超过500") private String size; /** diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProduct.java b/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProduct.java index 31d8b14..309791f 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProduct.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProduct.java @@ -32,9 +32,10 @@ public class MtProduct { private BigDecimal price; /** - * 主图URL(最大4000字符) + * 主图URL(支持JSON数组格式存储多张主图,如:["url1","url2"],或单个URL字符串) + * 数据库字段类型:TEXT */ - @TableField(value = "main_image", jdbcType = org.apache.ibatis.type.JdbcType.VARCHAR) + @TableField(value = "main_image", jdbcType = org.apache.ibatis.type.JdbcType.LONGVARCHAR) private String mainImage; /** diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProductSku.java b/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProductSku.java index c647f65..c00f7f0 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProductSku.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/entity/MtProductSku.java @@ -68,7 +68,8 @@ public class MtProductSku { private BigDecimal weight; /** - * 大小/尺寸(JSON格式,如:{"length":10,"width":5,"height":3},单位:厘米) + * 大小/尺寸(JSON格式,如:{"length":30,"width":30,"height":30,"unit":"cm"},单位:厘米) + * 数据库字段类型:VARCHAR(500) */ @TableField(value = "size", jdbcType = org.apache.ibatis.type.JdbcType.VARCHAR) private String size; diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/entity/PaymentOrder.java b/mt-pay/src/main/java/com/mtkj/mtpay/entity/PaymentOrder.java index 56b397a..65deef3 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/entity/PaymentOrder.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/entity/PaymentOrder.java @@ -9,7 +9,7 @@ import java.time.LocalDateTime; /** * 支付订单实体 */ -@TableName(value = "payment_order", resultMap = "BaseResultMap") +@TableName(value = "payment_order") @Data public class PaymentOrder { diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/service/ProductService.java b/mt-pay/src/main/java/com/mtkj/mtpay/service/ProductService.java index 2c842a5..ffa9524 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/service/ProductService.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/service/ProductService.java @@ -28,5 +28,12 @@ public interface ProductService { * @return 商品详情页URL */ String getProductUrl(Long id); + + /** + * 根据链接码获取商品ID(用于前端通过链接码访问商品详情页) + * @param linkCode 链接码 + * @return 商品ID + */ + Long getProductIdByLinkCode(String linkCode); } diff --git a/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/ProductServiceImpl.java b/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/ProductServiceImpl.java index 4dbf5b2..ef467af 100644 --- a/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/ProductServiceImpl.java +++ b/mt-pay/src/main/java/com/mtkj/mtpay/service/impl/ProductServiceImpl.java @@ -42,6 +42,9 @@ public class ProductServiceImpl implements ProductService { @Autowired private ObjectMapper objectMapper; + @Autowired + private com.mtkj.mtpay.service.ProductLinkService productLinkService; + @Value("${server.port:8082}") private String serverPort; @@ -67,9 +70,10 @@ public class ProductServiceImpl implements ProductService { product.setPrice(request.getPrice()); // 处理主图:优先使用mainImages(多图),如果没有则使用mainImage(单图,兼容旧版本) + // 前端会同时发送mainImage和mainImages,优先使用mainImages String mainImageValue = null; if (request.getMainImages() != null && !request.getMainImages().isEmpty()) { - // 多个主图,转换为JSON数组存储 + // 多个主图,转换为JSON数组存储到数据库 try { mainImageValue = objectMapper.writeValueAsString(request.getMainImages()); log.debug("商品主图(多图): {}", mainImageValue); @@ -78,7 +82,7 @@ public class ProductServiceImpl implements ProductService { throw new BusinessException(ResultCode.SYSTEM_ERROR, "主图数据格式错误"); } } else if (StringUtils.hasText(request.getMainImage())) { - // 单个主图,兼容旧版本 + // 单个主图,兼容旧版本(如果没有mainImages但有mainImage) mainImageValue = request.getMainImage(); log.debug("商品主图(单图): {}", mainImageValue); } @@ -121,6 +125,16 @@ public class ProductServiceImpl implements ProductService { } } + // 创建商品链接(自动生成,有效期90天) + try { + com.mtkj.mtpay.entity.MtProductLink productLink = productLinkService.createOrGetProductLink(product.getId(), 90); + log.info("商品链接创建成功,商品ID: {}, 链接码: {}, URL: {}", + product.getId(), productLink.getLinkCode(), productLink.getFullUrl()); + } catch (Exception e) { + log.error("创建商品链接失败,商品ID: {}", product.getId(), e); + // 链接创建失败不影响商品创建,只记录日志 + } + log.info("商品创建成功,商品ID: {}, 商品名称: {}, SKU数量: {}", product.getId(), product.getName(), request.getSkus() != null ? request.getSkus().size() : 0); @@ -205,11 +219,31 @@ public class ProductServiceImpl implements ProductService { throw new BusinessException(ResultCode.DATA_NOT_FOUND, "商品不存在"); } - // 构建商品详情页URL(使用前端地址) - // 格式:http://前端地址/product/{id} - String productUrl = frontendUrl + "/product/" + id; - log.info("生成商品URL成功,商品ID: {}, URL: {}", id, productUrl); - return productUrl; + // 创建或获取商品链接(有效期90天) + com.mtkj.mtpay.entity.MtProductLink productLink = productLinkService.createOrGetProductLink(id, 90); + + log.info("获取商品URL成功,商品ID: {}, 链接码: {}, URL: {}", + id, productLink.getLinkCode(), productLink.getFullUrl()); + + return productLink.getFullUrl(); + } + + /** + * 根据链接码获取商品ID(用于前端通过链接码访问商品详情页) + * @param linkCode 链接码 + * @return 商品ID + */ + public Long getProductIdByLinkCode(String linkCode) { + log.debug("根据链接码获取商品ID,链接码: {}", linkCode); + + Long productId = productLinkService.getProductIdByLinkCode(linkCode); + if (productId == null) { + log.warn("链接无效或已过期,链接码: {}", linkCode); + throw new BusinessException(ResultCode.DATA_NOT_FOUND, "链接无效或已过期"); + } + + log.debug("根据链接码获取商品ID成功,链接码: {}, 商品ID: {}", linkCode, productId); + return productId; } } diff --git a/pom.xml b/pom.xml index e496643..d928e3c 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.mtkj MTKJPAY 0.0.1-SNAPSHOT - jar + pom MTKJPAY MTKJPAY @@ -27,67 +27,33 @@ + + mt-pay + mt-startup + + 17 + 1.18.30 + 3.5.8 + 3.0.3 - - - - com.mtkj - mt-pay - 0.0.1-SNAPSHOT - - - - - org.springframework.boot - spring-boot-starter-webmvc - - - - - org.springframework.boot - spring-boot-devtools - runtime - true - - - - - org.projectlombok - lombok - true - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - org.projectlombok - lombok - ${lombok.version} - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - - - - + + + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + + org.mybatis + mybatis-spring + ${mybatis-spring.version} + + + diff --git a/src/main/java/com/mtkj/mtkjpay/MtkjpayApplication.java b/src/main/java/com/mtkj/mtkjpay/MtkjpayApplication.java deleted file mode 100644 index 55328b0..0000000 --- a/src/main/java/com/mtkj/mtkjpay/MtkjpayApplication.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.mtkj.mtkjpay; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.core.env.Environment; - -/** - * MTKJ PAY 支付系统启动类 - * 这是项目的唯一启动入口 - */ -@Slf4j -@SpringBootApplication(scanBasePackages = {"com.mtkj.mtpay", "com.mtkj.mtkjpay"}) -public class MtkjpayApplication { - - public static void main(String[] args) { - try { - log.info(""" - - ╔══════════════════════════════════════════════════════════╗ - ║ ║ - ║ MTKJ PAY 支付系统正在启动... ║ - ║ ║ - ╚══════════════════════════════════════════════════════════╝ - """); - - SpringApplication app = new SpringApplication(MtkjpayApplication.class); - Environment env = app.run(args).getEnvironment(); - - String applicationName = env.getProperty("spring.application.name", "MTKJPAY"); - String serverPort = env.getProperty("server.port", "8082"); - String contextPath = env.getProperty("server.servlet.context-path", ""); - String activeProfiles = String.join(",", env.getActiveProfiles()); - - // 构建完整的访问地址 - String baseUrl = "http://localhost:" + serverPort + contextPath; - String apiUrl = baseUrl + "/api"; - String druidUrl = baseUrl + "/druid"; - - // 打印醒目的启动成功标识 - log.info(""" - - ╔══════════════════════════════════════════════════════════╗ - ║ ║ - ║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║ - ║ ║ - ╠══════════════════════════════════════════════════════════╣ - ║ 应用信息 ║ - ╠══════════════════════════════════════════════════════════╣ - ║ 应用名称: {:<45} ║ - ║ 运行环境: {:<45} ║ - ║ 服务端口: {:<45} ║ - ╠══════════════════════════════════════════════════════════╣ - ║ 访问地址 ║ - ╠══════════════════════════════════════════════════════════╣ - ║ 后端服务: {:<45} ║ - ║ API接口: {:<45} ║ - ║ Druid监控: {:<45} ║ - ╠══════════════════════════════════════════════════════════╣ - ║ 状态: 🟢 服务运行中,可以接收请求 ║ - ╚══════════════════════════════════════════════════════════╝ - """, - applicationName, - activeProfiles.isEmpty() ? "default" : activeProfiles, - serverPort, - baseUrl, - apiUrl, - druidUrl); - - // 额外提示信息 - log.info(""" - - 📌 提示: - - 前端代理地址: http://localhost:3000 - - 后端API地址: {} - - 图片上传接口: {}/product/upload/image - - 商品管理接口: {}/product - """, apiUrl, apiUrl, apiUrl); - - } catch (Exception e) { - log.error(""" - - ╔══════════════════════════════════════════════════════════╗ - ║ ║ - ║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║ - ║ ║ - ╚══════════════════════════════════════════════════════════╝ - """, e); - throw e; - } - } - -} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml deleted file mode 100644 index a24bad5..0000000 --- a/src/main/resources/application-dev.yml +++ /dev/null @@ -1,67 +0,0 @@ -spring: - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - druid: - # 主库数据源(开发环境) - master: - url: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai - username: mtkj2025 - password: aXs-Q876#pxBesA - # 初始连接数 - initial-size: 5 - # 最小连接池数量 - min-idle: 10 - # 最大连接池数量 - max-active: 200 - # 配置获取连接等待超时的时间 - max-wait: 60000 - # 配置连接超时时间 - connect-timeout: 30000 - # 配置网络超时时间 - socket-timeout: 60000 - # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 - time-between-eviction-runs-millis: 60000 - # 配置一个连接在池中最小生存的时间,单位是毫秒 - min-evictable-idle-time-millis: 300000 - # 配置一个连接在池中最大生存的时间,单位是毫秒 - max-evictable-idle-time-millis: 900000 - # 配置检测连接是否有效 - validation-query: SELECT 1 FROM DUAL - test-while-idle: true - test-on-borrow: false - test-on-return: false - # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: - # Druid监控配置 - web-stat-filter: - enabled: true - stat-view-servlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: ruoyi - login-password: 123456 - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: false - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true - -# PingPong支付配置(开发环境使用沙箱) -pingpong: - gateway: https://sandbox-acquirer-payment.pingpongx.com - mode: sandbox - diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index f4bd4a9..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1,3 +0,0 @@ -spring.application.name=MTKJPAY -server.port=8082 -spring.profiles.active=dev diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml deleted file mode 100644 index b7cff5f..0000000 --- a/src/main/resources/application.yml +++ /dev/null @@ -1,99 +0,0 @@ -spring: - application: - name: MTKJPAY - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - druid: - # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: - # Druid监控配置 - web-stat-filter: - enabled: true - stat-view-servlet: - enabled: true - # 设置白名单,不填则允许所有访问 - allow: - url-pattern: /druid/* - # 控制台管理用户名和密码 - login-username: ruoyi - login-password: 123456 - filter: - stat: - enabled: true - # 慢SQL记录 - log-slow-sql: false - slow-sql-millis: 1000 - merge-sql: true - wall: - config: - multi-statement-allow: true - # MyBatis-Plus配置 - mybatis-plus: - # 配置扫描mapper.xml文件路径 - mapper-locations: classpath*:/mapper/**/*.xml - # 配置实体类包路径 - type-aliases-package: com.mtkj.mtpay.entity - # 配置MyBatis-Plus全局配置 - configuration: - # 开启驼峰命名转换 - map-underscore-to-camel-case: true - # 开启二级缓存 - cache-enabled: false - # 日志实现 - log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl - # 全局配置 - global-config: - db-config: - # 主键类型:AUTO-数据库自增 - id-type: auto - # 逻辑删除字段 - logic-delete-field: deleted - # 逻辑删除值 - logic-delete-value: 1 - # 逻辑未删除值 - logic-not-delete-value: 0 - -# PingPong支付配置 -pingpong: - client-id: your-client-id - acc-id: your-acc-id - secret: your-secret-key - sign-type: MD5 - gateway: https://sandbox-acquirer-payment.pingpongx.com - mode: sandbox - enabled: true - -# 服务器配置 -server: - port: 8082 - servlet: - context-path: / - # 文件上传配置 - multipart: - # 单个文件最大大小(10MB) - max-file-size: 10MB - # 请求最大大小(50MB,支持多文件上传) - max-request-size: 50MB - # 文件写入磁盘的阈值(超过此大小会写入临时文件) - file-size-threshold: 2MB - -# 应用配置 -app: - # 前端访问地址(用于生成商品详情页URL等) - frontend: - url: http://localhost:3000 - -# 阿里云OSS相关配置 -aliyun: - oss: - accessId: LTAI5tHbwvzWfANvNxju2yN1 - accessKey: sAQR2swByBgmMOofH97hSJT638aVcJ - endpoint: https://oss-cn-hangzhou.aliyuncs.com - bucketName: mtkj2025 - diff --git a/src/test/java/com/mtkj/mtkjpay/MtkjpayApplicationTests.java b/src/test/java/com/mtkj/mtkjpay/MtkjpayApplicationTests.java deleted file mode 100644 index 903123f..0000000 --- a/src/test/java/com/mtkj/mtkjpay/MtkjpayApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mtkj.mtkjpay; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class MtkjpayApplicationTests { - - @Test - void contextLoads() { - } - -}