在Scala中使用http而不是https进行连接的例外

时间:2020-08-26 09:19:06

标签: scala http exception https webserver

我已经在Scala的https中启动了我的Web服务器。我想知道是否存在一种方法,例如带有Exception的方法,该方法可以管理客户端想要尝试连接到http中的Web服务器的情况。 启用ssl握手调试,当我在http上卷曲时,我的网络服务器显示以下日志:

javax.net.ssl|ERROR|18|UorActorSystem-akka.actor.default-dispatcher-10|2020-08-26 11:23:48.803 CEST|TransportContext.java:312|Fatal (INTERNAL_ERROR): problem unwrapping net record (
"throwable" : {
  javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at java.base/sun.security.ssl.SSLEngineInputRecord.bytesInCompletePacket(SSLEngineInputRecord.java:146)
    at java.base/sun.security.ssl.SSLEngineInputRecord.bytesInCompletePacket(SSLEngineInputRecord.java:64)
    at java.base/sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:544)
    at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:441)
    at java.base/sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:420)
    at java.base/javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:634)
    at akka.stream.impl.io.TLSActor.doUnwrap(TLSActor.scala:385)
    at akka.stream.impl.io.TLSActor.doInbound(TLSActor.scala:295)
    at akka.stream.impl.io.TLSActor.$anonfun$bidirectional$1(TLSActor.scala:230)
    at akka.stream.impl.Pump.pump(Transfer.scala:203)
    at akka.stream.impl.Pump.pump$(Transfer.scala:201)
    at akka.stream.impl.io.TLSActor.pump(TLSActor.scala:50)
    at akka.stream.impl.SimpleOutputs$$anonfun$downstreamRunning$1.applyOrElse(ActorProcessor.scala:244)
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
    at akka.stream.impl.SubReceive.apply(Transfer.scala:19)
    at akka.stream.impl.FanOut$OutputBunch$$anonfun$subreceive$1.applyOrElse(FanOut.scala:242)
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:35)
    at akka.stream.impl.SubReceive.apply(Transfer.scala:19)
    at akka.stream.impl.SubReceive.apply(Transfer.scala:15)
    at scala.PartialFunction.applyOrElse(PartialFunction.scala:187)
    at scala.PartialFunction.applyOrElse$(PartialFunction.scala:186)
    at akka.stream.impl.SubReceive.applyOrElse(Transfer.scala:15)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:242)
    at akka.actor.Actor.aroundReceive(Actor.scala:535)
    at akka.actor.Actor.aroundReceive$(Actor.scala:533)
    at akka.stream.impl.io.TLSActor.aroundReceive(TLSActor.scala:50)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:575)
    at akka.actor.ActorCell.invoke(ActorCell.scala:545)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
    at akka.dispatch.Mailbox.run(Mailbox.scala:231)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)}

)

仅当启用-Djavax.net.debug = ssl:handshake属性时,我才看到此日志,而如果禁用它,则看不到任何日志。因此,我将处理这种情况,例如使用异常(如果存在)并打印一条消息。

0 个答案:

没有答案
相关问题