当前位置: 首页 > 知识库问答 >
问题:

当依赖物有Spring云启动器侦察时,莴苣抛出NPE

乐正心水
2023-03-14

我使用spring会话数据redis来管理会话。它将在每次请求之前从redis获取会话数据。但当从redis获取会话时,它会抛出一个NPE。如果我删除SpringCloudStarterSleuth依赖项,它就不会发生。

springboot版本:2.3。8.释放

springcloud版本:霍克斯顿。SR10

以下是例外信息:

java.lang.NullPointerException: null
    at io.lettuce.core.protocol.CommandHandler.writeSingleCommand(CommandHandler.java:426) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.lettuce.core.protocol.CommandHandler.write(CommandHandler.java:378) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:808) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:294) ~[netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.lettuce.core.protocol.DefaultEndpoint.channelWriteAndFlush(DefaultEndpoint.java:392) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.lettuce.core.protocol.DefaultEndpoint.writeToChannelAndFlush(DefaultEndpoint.java:332) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.lettuce.core.protocol.DefaultEndpoint.write(DefaultEndpoint.java:162) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.lettuce.core.protocol.DefaultEndpoint$RetryListener.requeueCommands(DefaultEndpoint.java:1002) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.lettuce.core.protocol.DefaultEndpoint$RetryListener.lambda$potentiallyRequeueCommands$0(DefaultEndpoint.java:989) ~[lettuce-core-5.3.6.RELEASE.jar:5.3.6.RELEASE]
    at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:164) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497) [netty-transport-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.58.Final.jar:4.1.58.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.58.Final.jar:4.1.58.Final]

共有1个答案

庞乐池
2023-03-14
Use 

       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
            <version>3.0.2</version>
        </dependency>

and 

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath/>
    </parent>

which share same reactor versions like below 


<dependency>
             <groupId>io.projectreactor.netty</groupId>
             <artifactId>reactor-netty</artifactId>
             <version>1.0.4</version>
        </dependency>
        
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
            <version>3.4.3</version>
        </dependency>
 类似资料:
  • 我正在开发JDK 1.8,但我不知道为什么“发布”不起作用。Redis“set”命令正在处理数据。 代码段: 从日志调试输出:

  • 当我重新启动redis时,会导致java.util.concurrent。ExecutionException:io.莴苣.core。RedisCommandExecutionException:不需要身份验证。为什么使用这样的版本会出现问题

  • 添加只是span-Cloud-starter-zipkin也能够生成spanId和TraceId那么侦察的需要是什么?Spring-云-启动器-拉链实际上自己拉io.zipkin.brave不是侦探。

  • 我有一个带有一个主服务器和两个从服务器的Elasticache设置。我仍然不确定如何传递主从RedisURI列表以构建用于。我只看到对具有单个主机和端口的标准配置的支持。 我知道在为Redis主/从配置Spring Data Redis时会遇到类似的问题 但我认为它不适用于ElastiCache主/从设置,因为目前上述代码将尝试使用MasterSlaveTopologyProvider来发现从IP

  • 我使用springboot 2.3.9.RELEASE的莴苣客户端连接AWS redis elasticcache主/从。I'am able to write and read but a error is抛出每隔5000ms一次 这项服务对我的pourpose很好,但我想删除错误或知道如何修复它。 我已经读了很多关于它的书,用AWS配置spring数据redis的最好方法是使用RedisticM

  • 我有一个Maven多模块项目,在主pom中将一些旧版本的Spring Boot依赖项设置为父项。xml。所有子模块都从这个主pom继承Spring Boot依赖项。xml。 这很好,但是在一个新的子模块(也是多模块)中,我想使用最新的Spring引导版本,而不改变项目中正在使用的版本(以及所有依赖项)。 有没有办法巧妙地覆盖从父版本派生的Spring引导版本(及其所有依赖项),并在子模块中使用不同