Mongodb Connection Error [java.lang.IllegalArgumentException: Prohibited character at position 0]

使用spring-boot-starter-data-mongodb-reactive 连接Mongodb 异常

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
    </dependency>
java.lang.IllegalArgumentException: Prohibited character at position 0
	at com.mongodb.internal.authentication.SaslPrep.saslPrep(SaslPrep.java:90) ~[mongodb-driver-core-4.0.5.jar:na]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint ⇢ Handler com.bluewhale.simple.spring.webflux.controller.StudentWebFluxController#getAllStudent() [DispatcherHandler]
	|_ checkpoint ⇢ HTTP GET "/api/getAllStudent" [ExceptionHandlingWebHandler]
Stack trace:
		at com.mongodb.internal.authentication.SaslPrep.saslPrep(SaslPrep.java:90) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.authentication.SaslPrep.saslPrepStored(SaslPrep.java:55) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient.getAuthenicationHash(ScramShaAuthenticator.java:316) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient.computeClientFinalMessage(ScramShaAuthenticator.java:182) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient.evaluateChallenge(ScramShaAuthenticator.java:121) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator$Continuator$1.run(SaslAuthenticator.java:251) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator$Continuator$1.run(SaslAuthenticator.java:246) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator.doAsSubject(SaslAuthenticator.java:207) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator$Continuator.continueConversation(SaslAuthenticator.java:246) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator$Continuator.start(SaslAuthenticator.java:241) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator$2$1.onResult(SaslAuthenticator.java:106) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.SaslAuthenticator$2$1.onResult(SaslAuthenticator.java:98) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.CommandHelper$1.onResult(CommandHelper.java:59) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.CommandHelper$1.onResult(CommandHelper.java:53) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$2$1.onResult(InternalStreamConnection.java:398) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$2$1.onResult(InternalStreamConnection.java:375) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:676) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:643) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:513) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:510) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:232) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection.readAsync(InternalStreamConnection.java:510) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection.access$1000(InternalStreamConnection.java:75) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:633) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:618) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:513) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:510) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.connection.netty.NettyStream.readAsync(NettyStream.java:232) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.connection.netty.NettyStream.handleReadResponse(NettyStream.java:262) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.connection.netty.NettyStream.access$800(NettyStream.java:69) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:321) ~[mongodb-driver-core-4.0.5.jar:na]
		at com.mongodb.connection.netty.NettyStream$InboundBufferHandler.channelRead0(NettyStream.java:318) ~[mongodb-driver-core-4.0.5.jar:na]
		at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.55.Final.jar:4.1.55.Final]
		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.55.Final.jar:4.1.55.Final]
		at java.lang.Thread.run(Thread.java:750) ~[na:1.8.0_332]

	at com.mongodb.internal.authentication.SaslPrep.saslPrep(SaslPrep.java:90) ~[mongodb-driver-core-4.0.5.jar:na]
	at com.mongodb.internal.authentication.SaslPrep.saslPrepStored(SaslPrep.java:55) ~[mongodb-driver-core-4.0.5.jar:na]
	at com.mongodb.internal.connection.ScramShaAuthenticator$ScramShaSaslClient.getAuthenicationHash(ScramShaAuthenticator.java:316) ~[mongodb-driver-core-4.0.5.jar:na]
            final int codepoint = normalized.codePointAt(i);
            // 3. Prohibit
            if (prohibited(codepoint)) {
                throw new IllegalArgumentException("Prohibited character at position " + i);
            }

在这里插入图片描述
normalized = " "

问题就找到了,password: 123456

spring:
  data:
    mongodb:
      host: 82.89.27.16
      database: Student
      username: test
      password: 123456
      port: 27017
  main:
    web-application-type: reactive

修改 password 加上""

spring:
  data:
    mongodb:
      host: 82.89.27.16
      database: Student
      username: test
      password: "123456"
      port: 27017
  main:
    web-application-type: reactive

OK , 可以正常访问mongodb啦, 从异常可以看到spring-boot-starter-data-mongodb-reactive 是构建在Netty Stream 之上的,Netty Stream 是基于Netty的,Netty作为网络编程框架是一个好的选择,也是一个好的开始。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
项目突然跑不起来报这个错 Exception in monitor thread while connecting to server 10.18.21.79:27117 com.mongodb.MongoSocketReadException: Exception receiving message at com.mongodb.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:536) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:421) at com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290) at com.mongodb.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255) at com.mongodb.connection.CommandHelper.sendAndReceive(CommandHelper.java:84) at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:34) at com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:91) at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:51) at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at com.mongodb.connection.SocketStream.read(SocketStream.java:84) at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:547) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:418)
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanghaoyuan.sh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值