【发布时间】:2021-06-25 04:16:18
【问题描述】:
在 grails 中,socket 读取失败或者 ioexception 会被捕获吗?即使我将错误部分包装在 try catch 块中,也会触发以下错误。
ERROR 2021-03-28 08:34:10,170 [ajp-bio-8109-exec-39783] errors.GrailsExceptionResolver: IOException occurred when processing request: [POST] /race/results/
Socket read failed. Stacktrace follows:
java.io.IOException: Socket read failed
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at java.io.PushbackInputStream.read(PushbackInputStream.java:186)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.Reader.read(Reader.java:140)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1485)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1461)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1436)
at org.apache.commons.io.IOUtils.toString(IOUtils.java:585)
at grails.converters.JSON.parse(JSON.java:312)
at grails.converters.JSON.parse(JSON.java:347)
在抛出错误时,我已将其包装在 try catch 块中,如下所示。
def results(){
def results
try {
results = request.JSON
} catch (IOException e1) {
log.error "ERROR WHILE request.json in /results******************************************************************"
render contentType: "text/json", text: '{"status":"fail"}'
return
}
此时抛出错误
results = request.JSON
我感谢任何见解。我正在使用 Grails 2.2。
谢谢!
更新:
这是完整的堆栈跟踪。谢谢!
ERROR 2021-03-28 08:34:10,170 [ajp-bio-8109-exec-39783] errors.GrailsExceptionResolver: IOException occurred when processing request: [POST] /race/results/
Socket read failed. Stacktrace follows:
java.io.IOException: Socket read failed
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at java.io.PushbackInputStream.read(PushbackInputStream.java:186)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.Reader.read(Reader.java:140)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1485)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1461)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1436)
at org.apache.commons.io.IOUtils.toString(IOUtils.java:585)
at grails.converters.JSON.parse(JSON.java:312)
at grails.converters.JSON.parse(JSON.java:347)
at race.results(VirtualRaceController.groovy:2011)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
【问题讨论】:
-
查看堆栈跟踪;看来异常是在该过程的后期引发的。
-
实际上,这看起来像一个 partial 堆栈跟踪。有东西在调用
grails.converters.JSON.parse...,它看起来不像是问题中的代码。 -
这是调用 json.parse results = request.JSON
-
请添加完整的堆栈跟踪。
-
我已经添加了完整的堆栈跟踪。谢谢!
标签: java json grails grails-2.2