使用Springcloud Gateway和Spring AI遇到的问题

使用Springcloud Gateway和Spring AI遇到的问题

1. 启动微服务时出现以下问题

Web application could not be started as there was no org.springframework.boot.web.reactive.server.ReactiveWebServerFactory bean defined in the context.

解决方法

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 访问openAI的URL时请求超时

   org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api.openai.com/v1/chat/completions": Connection timed out: connect

国内无法直接调用openAI的接口,需要使用国内代理https://api.chatanywhere.tech

spring:
  ai:
    openai:
      base-url: https://api.chatanywhere.tech

3. 引进alibaba ai后日志冲突

Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.simple.SimpleLoggerFactory loaded from file:/E:/mavenRepository/org/slf4j/slf4j-simple/2.0.13/slf4j-simple-2.0.13.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.simple.SimpleLoggerFactory

spring-cloud-starter-alibaba-ai依赖中包含了其他日志框架

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-ai</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4. 问题

D:\Java\jdk21\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -javaagent:D:\Java\JetBrains\ideaIU-2024.1.4.win\lib\idea_rt.jar=5283:D:\Java\JetBrains\ideaIU-2024.1.4.win\bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath E:\WorkSpace\IDEA\lmc-demo24\lmc-base-demo\lmc-hello-ai\target\classes;E:\mavenRepository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-discovery\2023.0.1.2\spring-cloud-starter-alibaba-nacos-discovery-2023.0.1.2.jar;E:\mavenRepository\com\alibaba\cloud\spring-cloud-alibaba-commons\2023.0.1.0\spring-cloud-alibaba-commons-2023.0.1.0.jar;E:\mavenRepository\com\alibaba\nacos\nacos-client\2.3.2\nacos-client-2.3.2.jar;E:\mavenRepository\com\alibaba\nacos\nacos-auth-plugin\2.3.2\nacos-auth-plugin-2.3.2.jar;E:\mavenRepository\com\alibaba\nacos\nacos-encryption-plugin\2.3.2\nacos-encryption-plugin-2.3.2.jar;E:\mavenRepository\commons-codec\commons-codec\1.16.1\commons-codec-1.16.1.jar;E:\mavenRepository\com\fasterxml\jackson\core\jackson-core\2.17.2\jackson-core-2.17.2.jar;E:\mavenRepository\com\fasterxml\jackson\core\jackson-databind\2.17.2\jackson-databind-2.17.2.jar;E:\mavenRepository\com\fasterxml\jackson\core\jackson-annotations\2.17.2\jackson-annotations-2.17.2.jar;E:\mavenRepository\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;E:\mavenRepository\org\apache\httpcomponents\httpcore-nio\4.4.16\httpcore-nio-4.4.16.jar;E:\mavenRepository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;E:\mavenRepository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;E:\mavenRepository\io\prometheus\simpleclient\0.16.0\simpleclient-0.16.0.jar;E:\mavenRepository\io\prometheus\simpleclient_tracer_otel\0.16.0\simpleclient_tracer_otel-0.16.0.jar;E:\mavenRepository\io\prometheus\simpleclient_tracer_common\0.16.0\simpleclient_tracer_common-0.16.0.jar;E:\mavenRepository\io\prometheus\simpleclient_tracer_otel_agent\0.16.0\simpleclient_tracer_otel_agent-0.16.0.jar;E:\mavenRepository\org\yaml\snakeyaml\2.2\snakeyaml-2.2.jar;E:\mavenRepository\io\micrometer\micrometer-core\1.13.2\micrometer-core-1.13.2.jar;E:\mavenRepository\io\micrometer\micrometer-commons\1.13.2\micrometer-commons-1.13.2.jar;E:\mavenRepository\org\hdrhistogram\HdrHistogram\2.2.2\HdrHistogram-2.2.2.jar;E:\mavenRepository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;E:\mavenRepository\com\alibaba\spring\spring-context-support\1.0.11\spring-context-support-1.0.11.jar;E:\mavenRepository\org\springframework\cloud\spring-cloud-commons\4.1.2\spring-cloud-commons-4.1.2.jar;E:\mavenRepository\org\springframework\security\spring-security-crypto\6.3.1\spring-security-crypto-6.3.1.jar;E:\mavenRepository\org\springframework\cloud\spring-cloud-context\4.1.2\spring-cloud-context-4.1.2.jar;E:\mavenRepository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-config\2023.0.1.2\spring-cloud-starter-alibaba-nacos-config-2023.0.1.2.jar;E:\mavenRepository\org\slf4j\slf4j-api\2.0.13\slf4j-api-2.0.13.jar;E:\mavenRepository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;E:\mavenRepository\org\springframework\boot\spring-boot-starter-undertow\3.3.2\spring-boot-starter-undertow-3.3.2.jar;E:\mavenRepository\io\undertow\undertow-core\2.3.13.Final\undertow-core-2.3.13.Final.jar;E:\mavenRepository\org\jboss\logging\jboss-logging\3.5.3.Final\jboss-logging-3.5.3.Final.jar;E:\mavenRepository\org\jboss\xnio\xnio-api\3.8.8.Final\xnio-api-3.8.8.Final.jar;E:\mavenRepository\org\wildfly\common\wildfly-common\1.5.4.Final\wildfly-common-1.5.4.Final.jar;E:\mavenRepository\org\wildfly\client\wildfly-client-config\1.0.1.Final\wildfly-client-config-1.0.1.Final.jar;E:\mavenRepository\org\jboss\xnio\xnio-nio\3.8.8.Final\xnio-nio-3.8.8.Final.jar;E:\mavenRepository\org\jboss\threads\jboss-threads\3.5.0.Final\jboss-threads-3.5.0.Final.jar;E:\mavenRepository\io\undertow\undertow-servlet\2.3.13.Final\undertow-servlet-2.3.13.Final.jar;E:\mavenRepository\jakarta\servlet\jakarta.servlet-api\6.0.0\jakarta.servlet-api-6.0.0.jar;E:\mavenRepository\io\undertow\undertow-websockets-jsr\2.3.13.Final\undertow-websockets-jsr-2.3.13.Final.jar;E:\mavenRepository\jakarta\websocket\jakarta.websocket-api\2.1.1\jakarta.websocket-api-2.1.1.jar;E:\mavenRepository\jakarta\websocket\jakarta.websocket-client-api\2.1.1\jakarta.websocket-client-api-2.1.1.jar;E:\mavenRepository\org\apache\tomcat\embed\tomcat-embed-el\10.1.26\tomcat-embed-el-10.1.26.jar;E:\mavenRepository\org\springframework\boot\spring-boot-starter-web\3.3.2\spring-boot-starter-web-3.3.2.jar;E:\mavenRepository\org\springframework\boot\spring-boot-starter\3.3.2\spring-boot-starter-3.3.2.jar;E:\mavenRepository\org\springframework\boot\spring-boot-starter-logging\3.3.2\spring-boot-starter-logging-3.3.2.jar;E:\mavenRepository\ch\qos\logback\logback-classic\1.5.6\logback-classic-1.5.6.jar;E:\mavenRepository\ch\qos\logback\logback-core\1.5.6\logback-core-1.5.6.jar;E:\mavenRepository\org\apache\logging\log4j\log4j-to-slf4j\2.23.1\log4j-to-slf4j-2.23.1.jar;E:\mavenRepository\org\apache\logging\log4j\log4j-api\2.23.1\log4j-api-2.23.1.jar;E:\mavenRepository\org\slf4j\jul-to-slf4j\2.0.13\jul-to-slf4j-2.0.13.jar;E:\mavenRepository\org\springframework\spring-core\6.1.11\spring-core-6.1.11.jar;E:\mavenRepository\org\springframework\spring-jcl\6.1.11\spring-jcl-6.1.11.jar;E:\mavenRepository\org\springframework\boot\spring-boot-starter-json\3.3.2\spring-boot-starter-json-3.3.2.jar;E:\mavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.17.2\jackson-datatype-jdk8-2.17.2.jar;E:\mavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.17.2\jackson-datatype-jsr310-2.17.2.jar;E:\mavenRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.17.2\jackson-module-parameter-names-2.17.2.jar;E:\mavenRepository\org\springframework\spring-web\6.1.11\spring-web-6.1.11.jar;E:\mavenRepository\org\springframework\spring-beans\6.1.11\spring-beans-6.1.11.jar;E:\mavenRepository\io\micrometer\micrometer-observation\1.13.2\micrometer-observation-1.13.2.jar;E:\mavenRepository\org\springframework\spring-webmvc\6.1.11\spring-webmvc-6.1.11.jar;E:\mavenRepository\org\springframework\spring-aop\6.1.11\spring-aop-6.1.11.jar;E:\mavenRepository\org\springframework\spring-expression\6.1.11\spring-expression-6.1.11.jar;E:\mavenRepository\org\springframework\boot\spring-boot-devtools\3.3.2\spring-boot-devtools-3.3.2.jar;E:\mavenRepository\org\springframework\boot\spring-boot\3.3.2\spring-boot-3.3.2.jar;E:\mavenRepository\org\springframework\boot\spring-boot-autoconfigure\3.3.2\spring-boot-autoconfigure-3.3.2.jar;E:\mavenRepository\com\alibaba\cloud\spring-cloud-starter-alibaba-ai\2023.0.1.0\spring-cloud-starter-alibaba-ai-2023.0.1.0.jar;E:\mavenRepository\org\springframework\ai\spring-ai-core\0.8.1\spring-ai-core-0.8.1.jar;E:\mavenRepository\io\swagger\core\v3\swagger-annotations\2.2.20\swagger-annotations-2.2.20.jar;E:\mavenRepository\com\github\victools\jsonschema-module-swagger-2\4.33.1\jsonschema-module-swagger-2-4.33.1.jar;E:\mavenRepository\org\springframework\cloud\spring-cloud-function-context\4.1.0\spring-cloud-function-context-4.1.0.jar;E:\mavenRepository\net\jodah\typetools\0.6.2\typetools-0.6.2.jar;E:\mavenRepository\org\springframework\cloud\spring-cloud-function-core\4.1.0\spring-cloud-function-core-4.1.0.jar;E:\mavenRepository\org\antlr\stringtemplate\4.0.2\stringtemplate-4.0.2.jar;E:\mavenRepository\org\antlr\antlr-runtime\3.3\antlr-runtime-3.3.jar;E:\mavenRepository\org\antlr\antlr4-runtime\4.13.1\antlr4-runtime-4.13.1.jar;E:\mavenRepository\io\projectreactor\reactor-core\3.6.8\reactor-core-3.6.8.jar;E:\mavenRepository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;E:\mavenRepository\org\springframework\spring-messaging\6.1.11\spring-messaging-6.1.11.jar;E:\mavenRepository\com\knuddels\jtokkit\1.0.0\jtokkit-1.0.0.jar;E:\mavenRepository\com\github\victools\jsonschema-generator\4.31.1\jsonschema-generator-4.31.1.jar;E:\mavenRepository\com\fasterxml\classmate\1.7.0\classmate-1.7.0.jar;E:\mavenRepository\com\github\victools\jsonschema-module-jackson\4.31.1\jsonschema-module-jackson-4.31.1.jar;E:\mavenRepository\com\alibaba\dashscope-sdk-java\2.12.0\dashscope-sdk-java-2.12.0.jar;E:\mavenRepository\com\google\guava\guava\32.1.1-jre\guava-32.1.1-jre.jar;E:\mavenRepository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;E:\mavenRepository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;E:\mavenRepository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;E:\mavenRepository\org\checkerframework\checker-qual\3.33.0\checker-qual-3.33.0.jar;E:\mavenRepository\com\google\errorprone\error_prone_annotations\2.18.0\error_prone_annotations-2.18.0.jar;E:\mavenRepository\com\google\j2objc\j2objc-annotations\2.8\j2objc-annotations-2.8.jar;E:\mavenRepository\io\reactivex\rxjava2\rxjava\2.2.21\rxjava-2.2.21.jar;E:\mavenRepository\org\projectlombok\lombok\1.18.34\lombok-1.18.34.jar;E:\mavenRepository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;E:\mavenRepository\com\squareup\okio\okio\3.5.0\okio-3.5.0.jar;E:\mavenRepository\com\squareup\okio\okio-jvm\3.5.0\okio-jvm-3.5.0.jar;E:\mavenRepository\org\jetbrains\kotlin\kotlin-stdlib-common\1.9.24\kotlin-stdlib-common-1.9.24.jar;E:\mavenRepository\com\squareup\okhttp3\logging-interceptor\4.12.0\logging-interceptor-4.12.0.jar;E:\mavenRepository\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.9.24\kotlin-stdlib-jdk8-1.9.24.jar;E:\mavenRepository\org\jetbrains\kotlin\kotlin-stdlib\1.9.24\kotlin-stdlib-1.9.24.jar;E:\mavenRepository\org\jetbrains\annotations\13.0\annotations-13.0.jar;E:\mavenRepository\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.9.24\kotlin-stdlib-jdk7-1.9.24.jar;E:\mavenRepository\com\squareup\okhttp3\okhttp-sse\4.12.0\okhttp-sse-4.12.0.jar;E:\mavenRepository\com\squareup\okhttp3\okhttp\4.12.0\okhttp-4.12.0.jar;E:\mavenRepository\org\springframework\spring-context\6.1.11\spring-context-6.1.11.jar com.lmc.base.demo.ai.HelloAiApplication
11:04:18.446 [restartedMain] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter -- 

***************************
APPLICATION FAILED TO START
***************************

Description:

No spring.config.import property has been defined

Action:

Add a spring.config.import=nacos: property to your configuration.
	If configuration is not required add spring.config.import=optional:nacos: instead.
	To disable this check, set spring.cloud.nacos.config.import-check.enabled=false.


Process finished with exit code 0

不小心把依赖spring-cloud-starter-bootstrap删除导致这个问题,重新加回去就可以了

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

5. 网关路由404

访问/actuator/gateway/routes时出现404

虽然加了actuator依赖和management.endpoints.web.exposure.include=*,但把management.endpoint.gateway.enabled=true遗漏了
补充配置之后就正常了

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    gateway:
      enabled: true

6. 通过springcloud gateway访问时出现503

 There was an unexpected error (type=Service Unavailable, status=503).

原因是遗漏了负载均衡,添加依赖就OK了

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值