1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dromara-forest

 / Детали:

Обновление Spring Boot с версии 1.5.36 до Yöntem: 1. **Конфигурация проверьте:** Убедитесь, что все необходимые...

Предстоит сделать
Владелец
Создано  
11.03.2025

зависимости включены в ваш pom.xml или build.gradle файл. 2. Логи приложения проверьте: Обратите внимание на любые сообщения об ошибках или предупреждения, связанные с Feign или другими зависимостями. 3. Конфигурационные файлы проверьте: Убедитесь, что ваши конфигурационные файлы правильно настроены для использования Feign. 4. Дебаггер используйте: Отладьте код, чтобы проверить, как он выполняется после обновления, и выявить возможные проблемы. 5. Документацию проверьте: Убедитесь, что вы используете правильные методы и подходы для работы с Feign в новой версии Spring Boot. 6. Примеры проверьте: Посмотрите примеры использования Feign в документации Spring Boot или других источников, чтобы сравнить их со своим кодом. 7. Сообщения об ошибках проверьте: Если есть какие-либо сообщения об ошибках, попробуйте найти информацию о них в интернете или обратиться за помощью на форумах. 8. Совместимость проверьте: Убедитесь, что все используемые библиотеки совместимы с версией Spring Boot 1.6.3. Если проблема сохраняется, рекомендуется обратиться за помощью на форумах или в службу поддержки Spring Boot. Обновление Spring Boot с версии 1.5.36 до 1.6.3 привело к проблеме запуска проекта, где все компоненты Forest-Feign не находятся. Как можно выполнить диагностику этой проблемы? 1. Проверьте конфигурацию: Убедитесь, что все необходимые зависимости включены в ваш pom.xml или build.gradle. 2. Проверьте логи приложения: Обратите внимание на любые сообщения об ошибках или предупреждения, связанные с Feign или другими зависимостями. 3. Проверьте конфигурационные файлы: Убедитесь, что ваши конфигурационные файлы правильно настроены для использования Feign. 4. Используйте дебаггер: Отладьте код, чтобы проверить, как он выполняется после обновления, и выявить возможные проблемы. 5. Проверьте документацию: Убедитесь, что вы используете правильные методы и подходы для работы с Feign в новой версии Spring Boot. 6. Проверьте примеры: Посмотрите примеры использования Feign в документации Spring Boot или других источниках, чтобы сравнить их со своим кодом. 7. Проверьте сообщения об ошибках: Если есть какие-либо сообщения об ошибках, попробуйте найти информацию о них в интернете или обратиться за помощью на форумах. 8. Проверьте совместимость: Убедитесь, что все используемые библиотеки совместимы с версией Spring Boot 1.6.3. Если проблема сохраняется, рекомендуется обратиться за помощью на форумах или в службу поддержки Spring Boot.

Используемый версионный Forest и используемое backend с его версией

Forest: версия
Backend: (okhttp или httpclient)/версия

Как возникла проблема?

  1. Обновление от 1.5.x до 1.6.x в Spring Boot 2.x.
Шаги воспроизведения проблемы (если применимо)
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.13</version>
    <relativePath/> <!-- Указывает родителя из репозитория -->
</parent>

<!-- Этот вариант всегда работал корректно, запросы выполнялись нормально -->
<!-- https://forest.dtflyx.com/ -->
<dependency>
    <groupId>com.dtflys.forest</groupId>
    <artifactId>forest-spring-boot-starter</artifactId>
    <version>1.5.36</version>
</dependency>

<!-- После перехода на эту версию проект не смог запуститься, сообщение об ошибке было связано с внедрением зависимости -->
<!-- https://forest.dtflyx.com/ -->
<dependency>
    <groupId>com.dtflys.forest</groupId>
    <artifactId>forest-spring-boot-starter</artifactId>
    <version>1.6.3</version>
</dependency>
```##### Ошибочное сообщение / полный лог запроса (если нет лога запроса, пожалуйста, включите его)
```plaintext
2025-01-28 23:28:57.034 ERROR 17568 --- [          main] o.s.t.c.TestContextManager               : Caught exception while allowing TestExecutionListener [org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@6b5966e1] to prepare test instance [work.linruchang.chatgptweb.ChatGptWebApplicationTests@13515709]

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'work.linruchang.chatgptweb.ChatGptWebApplicationTests': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет подходящего бинда типа 'work.linruchang.chatgptweb.feign.GuoHeBaoKeFeign'. Ожидается хотя бы один бинд, который может быть автоматически внедрен. Зависимость аннотирована: {@javax.annotation.Resource(shareable=true, lookup="", name="", description="", authenticationType=CONTAINER, type=class java.lang.Object, mappedName="")}
        at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:332) ~[spring-context-5.3.28.jar:5.3.28]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.28.jar:5.3.28]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:417) ~[spring-beans-5.3.28.jar:5.3.28]
        at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:119) ~[spring-test-5.3.28.jar:5.3.28]
        at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) ~[spring-test-5.3.28.jar:5.3.28]
        at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.
``````java
java:43) ~[spring-boot-test-autoconfigure-2.7.13.jar:2.7.13]
  	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) ~[spring-test-5.3.28.jar:5.3.28]
  	at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) [spring-test-5.3.28.jar:5.3.28]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_261]
  	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_261]
  	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[na:1.8.0_261]
  	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[na:1.8.0_261]
  	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[na:1.8.0_261]
  	at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312) ~[na:1.8.0_261]
  	at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:743) ~[na:1.8.0_261]
  	at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:742) ~[na:1.8.0_261]
  	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) ~[na:1.8.0_261]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:273) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassTestTemplateExecutor.instantiateTestClass(ClassTestTemplateExecutor.java:52) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$createTests$0(ExecutableInvoker.java:63) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$createTestDescriptorsFromTestFactory$1(TestFactoryTestDescriptor.java:139) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$null$2(TestFactoryTestDescriptor.java:106) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:176) ~[na:1.8.0_261]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$testFactory$3(TestFactoryTestDescriptor.java:132) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$null$4(TestFactoryTestDescriptor.java:145) [junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[na:1.8.0_261]
  	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[na:1.8.0_261]
  	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[na:1.8.0_261]
  	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:583) ~[na:1.8.0_261]

Также исправлены некоторые ошибки в тексте:

java:43) ~[spring-boot-test-autoconfigure-2.7.13.jar:2.7.13]
  	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) ~[spring-test-5.3.28.jar:5.3.28]
  	at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) ~[spring-test-5.3.28.jar:5.3.28]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_261]
  	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_261]
  	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[na:1.8.0_261]
  	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[na:1.8.0_261]
  	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[na:1.8.0_261]
  	at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312) ~[na:1.8.0_261]
  	at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:743) ~[na:1.8.0_261]
  	at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:742) ~[na:1.8.0_261]
  	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) ~[na:1.8.0_261]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:273) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.ClassTestTemplateExecutor.instantiateTestClass(ClassTestTemplateExecutor.java:52) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$createTests$0(ExecutableInvoker.java:63) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$createTestDescriptorsFromTestFactory$1(TestFactoryTestDescriptor.java:139) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$null$2(TestFactoryTestDescriptor.java:106) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:176) ~[na:1.8.0_261]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$testFactory$3(TestFactoryTestDescriptor.java:132) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.lambda$null$4(TestFactoryTestDescriptor.java:145) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
  	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[na:1.8.0_261]
  	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[na:1.8.0_261]
  	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[na:1.8.0_261]
  	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:583) ~[na:1.8.0_261]
```junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) [junit-jupiter-engine-5.8.2.jar:5.8.2]
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) [junit-jupiter-engine-5.8.2.jar:5.8.2]
    at java.util.Optional.orElseGet(Optional.java:267) ~[na:1.8.0_261]
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) [junit-jupiter-engine-5.8.2.jar:5.8.2]
    at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) ~[junit-jupiter-engine-5.8.2.jar:5.8.2]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at java.util.ArrayList.forEach(ArrayList.java:1259) ~[na:1.8.0_261]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:148)java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at java.util.ArrayList.forEach(ArrayList.java:1259) ~[na:1.8.0_261]
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2]
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2]NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57) ~[junit5-rt.jar:na]
    at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) ~[junit-rt.jar:na]
    at com.```java
intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) ~[idea_rt.jar:na]
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) ~[junit-rt.jar:na]
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) ~[junit-rt.jar:na]
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) ~[junit-rt.jar:na]

Также:

intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) ~[idea_rt.jar:na]
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) ~[junit-rt.jar:na]
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) ~[junit-rt.jar:na]
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) ~[junit-rt.jar:na]
```Причина: org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет подходящего бин типа 'work.linruchang.chatgptweb.feign.GuoHeBaoKeFeign': доступно 0 бинов, удовлетворяющих требованиям автовязки. Аннотация зависимости: {@javax.annotation.Resource(shareable=true, lookup="", name="", description="", authenticationType=CONTAINER, type=class java.lang.Object, mappedName="")}
  	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801) ~[spring-beans-5.3.28.jar:5.3.28]
  	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357) ~[spring-beans-5.3.28.jar:5.3.28]
  	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.28.jar:5.3.28]
  	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java)

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'commonAnnotationBeanPostProcessor', определенного в класс путь ресурс [org/springframework/context/config/common-annotation.xml]: Инициализация бина не удалась; вложенный异常是:java.lang.IllegalArgumentException (spring-context-5.3.28.jar:5.3.28)
 	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessBeforeInitialization(CommonAnnotationBeanPostProcessor.java:544) ~[spring-context-5.3.28.jar:5.3.28]
 	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:520) ~[spring-context-5.3.28.jar:5.3.28]
 	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:673) ~[spring-context-5.3.28.jar:5.3.28]
 	at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) ~[spring-beans-5.3.28.jar:5.3.28]
 	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.28.jar:5.3.28]
 	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessBeforeInitialization(CommonAnnotationBeanPostProcessor.java:544) ~[spring-context-5.3.28.jar:5.3.28]CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:329) ~[spring-context-5.3.28.jar:5.3.28]
 	... 73 общих кадра опущены
```### Определение интерфейса (при необходимости предоставьте)

```java
/**
 * Интерфейс для получения списка статей
 * https://www.ghxi.com
 * @author LinRuChang
 * @version 1.0
 * @date 2023/09/13
 * @since 1.8
 **/
public interface GuoHeBaoKeFeign {
    /**
     * Получение списка программ
     *
     * @param n тип программы: компьютер (PC), Андроид (AND) смотрите {@link SoftwareTypeEnum#getType()}
     * @return
     */
    @GetRequest(url = "https://www.ghxi.com/ghapi?type=query")
    GuoHeBaoKeFeignResult getSoftwareDataListResult(@Query(value = "n", defaultValue = "pc") String n);

    default List<GuoHeBaoKeFeignResultDataSoftwareInfo> getSoftwareDataList(SoftwareTypeEnum softwareTypeEnum) {
        softwareTypeEnum = ObjUtil.defaultIfNull(softwareTypeEnum, SoftwareTypeEnum.PC);
        GuoHeBaoKeFeign guoHeBaoKeFeign = SpringUtil.getBean(GuoHeBaoKeFeign.class);
        GuoHeBaoKeFeignResult softwareDataListResult = guoHeBaoKeFeign.getSoftwareDataListResult(softwareTypeEnum.getType());
        List<GuoHeBaoKeFeignResultDataSoftwareInfo> result = Convert.toList(GuoHeBaoKeFeignResultDataSoftwareInfo.class, BeanUtil.getProperty(softwareDataListResult, "data.list"));
        return result;
    }
}
``````java
/**
 * Поиск программ
 *
 * @param s имя программы для поиска
 * @return
 */
@GetRequest(
        url = "https://www.ghxi.com",
        headers = {
                "Accept-Language: en-GB;q=0.7, en-US;q=0.6"
        }
)
String[] headers = {
        "Accept-Language: en-GB;q=0.7, en-US;q=0.6",
        "Cache-Control: no-cache",
        "Connection: keep-alive",
        "Pragma: no-cache",
        "Referer: https://www.ghxi.com/?s=navicat",
        "Sec-Fetch-Dest: document",
        "Sec-Fetch-Mode: navigate",
        "Sec-Fetch-Site: same-origin",
        "Sec-Fetch-User: ?1",
        "Upgrade-Insecure-Requests: 1",
        "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76",
        "sec-ch-ua: \"Chromium\";v=\"116\", \"Not)A;Brand\";v=\"24\", \"Microsoft Edge\";v=\"116\"",
        "sec-ch-ua-mobile: ?0",
        "sec-ch-ua-platform: \"Windows\"",
};
}
String getSoftwareDataListSearchHtml(@Query(value = "s", defaultValue = "navicat") String s);
default List<GuoHeBaoKeFeignResultDataSoftwareInfo> getSoftwareSearchDataList(String s) {
    GuoHeBaoKeFeign guoHeBaoKeFeign = SpringUtil.getBean(GuoHeBaoKeFeign.class);
    String htmlContent = guoHeBaoKeFeign.getSoftwareDataListSearchHtml(s);
    Document htmlParse = Jsoup.parse(htmlContent);
    Elements articleElements = htmlParse.select(".main .sec-panel-body .post-loop .item .item-content");
    // articleElements.forEach(articleElement -> System.out.println(articleElement.text()));
    List<GuoHeBaoKeFeignResultDataSoftwareInfo> result = articleElements.stream()
            .map(articleElement -> {
                GuoHeBaoKeFeignResultDataSoftwareInfo guoHeBaoKeFeignResultDataSoftwareInfo = new GuoHeBaoKeFeignResultDataSoftwareInfo();
                Element aElement = articleElement.selectFirst("a");
                guoHeBaoKeFeignResultDataSoftwareInfo.setUrl(aElement.attr("href"));
                guoHeBaoKeFeignResultDataSoftwareInfo.setTitle(StrUtil.trim(aElement.text()));
                Element abbreviationsContentElement = articleElement.selectFirst(".item-excerpt");
                guoHeBaoKeFeignResultDataSoftwareInfo.setAbbreviationsContent(abbreviationsContentElement.text());
                Element dateElement = articleElement.selectFirst(".date");
                String dateContent = StrUtil.trim(dateElement.text());
                 DateTime date = null;
                  if (StrUtil.containsAnyIgnoreCase(dateContent, "days ago")) {
                      Integer dayCount = Convert.toInt(CollUtil.getFirst(ReUtil.findAllGroup0(Validator.NUMBERS, dateContent)), 0);
                      date = DateUtil.offsetDay(DateUtil.date(), -dayCount);
                  } else if (StrUtil.containsAnyIgnoreCase(dateContent, "hours ago")) {
                      Integer hourCount = Convert.toInt(CollUtil.getFirst(ReUtil.findAllGroup0(Validator.NUMBERS, dateContent)), 0);
                      date = DateUtil.offsetHour(DateUtil.date(), -hourCount);
                  } else if (StrUtil.containsAnyIgnoreCase(dateContent, "minutes ago")) {
                      Integer minuteCount = Convert.toInt(CollUtil.getFirst(ReUtil.findAllGroup0(Validator.NUMBERS, dateContent)), 0);
                      date = DateUtil.offsetMinute(DateUtil.date(), -minuteCount);
                  } else {
                      date = DateUtil.parse(dateContent);
                  }
                  guoHeBaoKeFeignResultDataSoftwareInfo.setTime(date);
                   return guoHeBaoKeFeignResultDataSoftwareInfo;
              })
              .collect(Collectors.toList());
            return result;
      }
   }

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/dromara-forest.git
git@api.gitlife.ru:oschina-mirror/dromara-forest.git
oschina-mirror
dromara-forest
dromara-forest