-
Notifications
You must be signed in to change notification settings - Fork 48
Description
我的桌面端连上本地部署的web端后,导入的自建tts会跳段落读,点击读上一段或者下一段段落桌面端会直接闪退,web端则抛出 java.io.IOException: writeBuffer has closed 的错误,我问一下这个能修复吗?
附上控制台具体报错信息:
java.io.IOException: writeBuffer has closed
at org.smartboot.socket.transport.WriteBuffer.write(WriteBuffer.java:208)
at org.smartboot.socket.transport.WriteBuffer.write(WriteBuffer.java:217)
at org.smartboot.http.common.io.BufferOutputStream.write(BufferOutputStream.java:75)
at org.smartboot.http.server.impl.HttpOutputStream.write(HttpOutputStream.java:75)
at web.controller.api.TTsController$tts$1.invokeSuspend(TTsController.kt:196)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:47)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at web.controller.api.TTsController.tts(TTsController.kt:177)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.noear.solon.core.wrap.MethodWrap.invoke(MethodWrap.java:271)
at org.noear.solon.core.wrap.MethodWrap.doIntercept(MethodWrap.java:260)
at org.noear.solon.core.aspect.InterceptorEntity.doIntercept(InterceptorEntity.java:55)
at org.noear.solon.core.aspect.Invocation.invoke(Invocation.java:115)
at org.noear.solon.core.wrap.MethodWrap.invokeByAspect(MethodWrap.java:286)
at org.noear.solon.core.mvc.ActionDefault.executeDo(ActionDefault.java:388)
at org.noear.solon.core.mvc.ActionDefault.invokeMethodDo(ActionDefault.java:324)
at org.noear.solon.core.mvc.ActionDefault.invokeHandleDo(ActionDefault.java:301)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:51)
at org.noear.solon.core.mvc.ActionDefault.invokeFilterDo(ActionDefault.java:293)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:51)
at org.noear.solon.web.cors.CrossOriginInterceptor.doFilter(CrossOriginInterceptor.java:56)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.core.mvc.ActionDefault.invoke(ActionDefault.java:267)
at org.noear.solon.core.mvc.ActionDefault.handle(ActionDefault.java:244)
at org.noear.solon.core.route.RouterHandler.handleMain(RouterHandler.java:51)
at org.noear.solon.core.route.RouterHandler.handle1(RouterHandler.java:71)
at org.noear.solon.core.route.RouterInterceptorChainImpl.doIntercept(RouterInterceptorChainImpl.java:54)
at org.noear.solon.core.route.RouterInterceptorLimiter.doIntercept(RouterInterceptorLimiter.java:66)
at org.noear.solon.core.route.RouterInterceptorChainImpl.doIntercept(RouterInterceptorChainImpl.java:52)
at org.noear.solon.core.ChainManager.doIntercept(ChainManager.java:199)
at org.noear.solon.core.route.RouterHandler.handle(RouterHandler.java:102)
at org.noear.solon.core.handle.HandlerPipeline.handle(HandlerPipeline.java:53)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:51)
at web.filter.ErrorsFilter.doFilter(ErrorsFilter.kt:22)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.web.cors.CrossFilter.doFilter(CrossFilter.java:47)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.web.cors.CrossFilter.doFilter(CrossFilter.java:47)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.logging.integration.LoggingPlugin.lambda$start$1(LoggingPlugin.java:71)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.core.ChainManager.doFilter(ChainManager.java:106)
at org.noear.solon.SolonApp.tryHandle(SolonApp.java:526)
at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handleDo(SmHttpContextHandler.java:123)
at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handle0(SmHttpContextHandler.java:101)
at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.lambda$handle$0(SmHttpContextHandler.java:86)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-12-23 06:11:44 WARN #13188 --- org.noear.solon.Solon:78 SolonApp tryHandle failed!
java.io.IOException: writeBuffer has closed
at org.smartboot.socket.transport.WriteBuffer.write(WriteBuffer.java:208)
at org.smartboot.socket.transport.WriteBuffer.write(WriteBuffer.java:217)
at org.smartboot.http.common.io.BufferOutputStream.write(BufferOutputStream.java:75)
at org.smartboot.http.server.impl.HttpOutputStream.write(HttpOutputStream.java:75)
at web.controller.api.TTsController$tts$1.invokeSuspend(TTsController.kt:196)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:47)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at web.controller.api.TTsController.tts(TTsController.kt:177)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.noear.solon.core.wrap.MethodWrap.invoke(MethodWrap.java:271)
at org.noear.solon.core.wrap.MethodWrap.doIntercept(MethodWrap.java:260)
at org.noear.solon.core.aspect.InterceptorEntity.doIntercept(InterceptorEntity.java:55)
at org.noear.solon.core.aspect.Invocation.invoke(Invocation.java:115)
at org.noear.solon.core.wrap.MethodWrap.invokeByAspect(MethodWrap.java:286)
at org.noear.solon.core.mvc.ActionDefault.executeDo(ActionDefault.java:388)
at org.noear.solon.core.mvc.ActionDefault.invokeMethodDo(ActionDefault.java:324)
at org.noear.solon.core.mvc.ActionDefault.invokeHandleDo(ActionDefault.java:301)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:51)
at org.noear.solon.core.mvc.ActionDefault.invokeFilterDo(ActionDefault.java:293)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:51)
at org.noear.solon.web.cors.CrossOriginInterceptor.doFilter(CrossOriginInterceptor.java:56)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.core.mvc.ActionDefault.invoke(ActionDefault.java:267)
at org.noear.solon.core.mvc.ActionDefault.handle(ActionDefault.java:244)
at org.noear.solon.core.route.RouterHandler.handleMain(RouterHandler.java:51)
at org.noear.solon.core.route.RouterHandler.handle1(RouterHandler.java:71)
at org.noear.solon.core.route.RouterInterceptorChainImpl.doIntercept(RouterInterceptorChainImpl.java:54)
at org.noear.solon.core.route.RouterInterceptorLimiter.doIntercept(RouterInterceptorLimiter.java:66)
at org.noear.solon.core.route.RouterInterceptorChainImpl.doIntercept(RouterInterceptorChainImpl.java:52)
at org.noear.solon.core.ChainManager.doIntercept(ChainManager.java:199)
at org.noear.solon.core.route.RouterHandler.handle(RouterHandler.java:102)
at org.noear.solon.core.handle.HandlerPipeline.handle(HandlerPipeline.java:53)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:51)
at web.filter.ErrorsFilter.doFilter(ErrorsFilter.kt:22)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.web.cors.CrossFilter.doFilter(CrossFilter.java:47)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.web.cors.CrossFilter.doFilter(CrossFilter.java:47)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.logging.integration.LoggingPlugin.lambda$start$1(LoggingPlugin.java:71)
at org.noear.solon.core.handle.FilterChainImpl.doFilter(FilterChainImpl.java:49)
at org.noear.solon.core.ChainManager.doFilter(ChainManager.java:106)
at org.noear.solon.SolonApp.tryHandle(SolonApp.java:526)
at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handleDo(SmHttpContextHandler.java:123)
at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handle0(SmHttpContextHandler.java:101)
at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.lambda$handle$0(SmHttpContextHandler.java:86)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
这是我自己建立的tts: