【发布时间】:2019-06-01 17:21:28
【问题描述】:
我正在编写非常基本的算法来更好地理解 Rest。
我写了以下代码:
@RestController
class DoubleController {
@GetMapping("/doubling")
public Object doubling(@RequestParam Integer input) {
if (input != null) {
return new DoubledValue(input);
}
return new Error("Please provide an input");
}
}
虽然如果给出输入它会很好地工作,但否则它会返回一个巨大的 JSON,而不仅仅是预期的。我的错误类只有一个字段,我想返回类似
{
"error": "Please provide an input!"
}
我收到的 JSON 消息如下:
{"cause":null,"stackTrace":[{"methodName":"doubling","fileName":"DoubleController.java","lineNumber":16,"className":"com.example.demo .Controllers.DoubleController","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java","lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl" ,"nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":62,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false },{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false},{"methodName" :"invoke","fileName":"Method.java","lineNumber":498,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName":"doInvoke" ,"fileName":"InvocableHandlerMethod.java","lineNumber":189,"className":"org.springframework.web.method.support.InvocableHandlerMethod","nativeMethod":false},{"methodName":"invokeForRequest ","fileName":"InvocableHandlerMethod.java","lineNumber":138,"className":"org.springframework.web.method.support.InvocableHandlerMethod","nativeMethod":false},{"methodName":"invokeAndHandle ","fileName":"ServletInvocableHandlerMethod.java","lineNumber":102,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"methodName ":"invokeHandlerMethod","fileName":"RequestMappingHandlerAdapter.java","lineNumber":895,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod":false} ,{"methodName":"handleInternal","fileName":"RequestMappingHandlerAdapter.java","lineNumber":800,"className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","nativeMethod ":false},{"methodName":"handle","fileName":"AbstractHandlerMethodAdapter.java","lineNumber":87,"className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter", “本机方法”:假},{"methodName":"doDispatch","fileName":"DispatcherServlet.java","lineNumber":1038,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false}, {"methodName":"doService","fileName":"DispatcherServlet.java","lineNumber":942,"className":"org.springframework.web.servlet.DispatcherServlet","nativeMethod":false},{" methodName":"processRequest","fileName":"FrameworkServlet.java","lineNumber":1005,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"methodName" :"doGet","fileName":"FrameworkServlet.java","lineNumber":897,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"methodName":" service","fileName":"HttpServlet.java","lineNumber":634,"className":"javax.servlet.http.HttpServlet","nativeMethod":false},{"methodName":"service"," fileName":"FrameworkServlet.java","lineNumber":882,"className":"org.springframework.web.servlet.FrameworkServlet","nativeMethod":false},{"methodName":"service","fileName" :"ht pServlet.java","lineNumber":741,"className":"javax.servlet.http.HttpServlet","nativeMethod":false},{"methodName":"internalDoFilter","fileName":"ApplicationFilterChain.java" ,"lineNumber":231,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter","fileName":"ApplicationFilterChain.java"," lineNumber":166,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter","fileName":"WsFilter.java","lineNumber" :53,"className":"org.apache.tomcat.websocket.server.WsFilter","nativeMethod":false},{"methodName":"internalDoFilter","fileName":"ApplicationFilterChain.java","lineNumber" :193,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter","fileName":"ApplicationFilterChain.java","lineNumber":166 ,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilterInternal","fileName":"RequestContextFilter.jav a","lineNumber":99,"className":"org.springframework.web.filter.RequestContextFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"OncePerRequestFilter.java" ,"lineNumber":107,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"methodName":"internalDoFilter","fileName":"ApplicationFilterChain.java"," lineNumber":193,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter","fileName":"ApplicationFilterChain.java","lineNumber" :166,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilterInternal","fileName":"FormContentFilter.java","lineNumber":92 ,"className":"org.springframework.web.filter.FormContentFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":107," className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"methodName":"internalDoFilter","fileName" :"ApplicationFilterChain.java","lineNumber":193,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter","fileName":" ApplicationFilterChain.java","lineNumber":166,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilterInternal","fileName":"HiddenHttpMethodFilter. java","lineNumber":93,"className":"org.springframework.web.filter.HiddenHttpMethodFilter","nativeMethod":false},{"methodName":"doFilter","fileName":"OncePerRequestFilter.java" ,"lineNumber":107,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"methodName":"internalDoFilter","fileName":"ApplicationFilterChain.java"," lineNumber":193,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter","fileName":"ApplicationFilterChain.java","lineNumber" :166,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodNa我":"doFilterInternal","fileName":"CharacterEncodingFilter.java","lineNumber":200,"className":"org.springframework.web.filter.CharacterEncodingFilter","nativeMethod":false},{"methodName" :"doFilter","fileName":"OncePerRequestFilter.java","lineNumber":107,"className":"org.springframework.web.filter.OncePerRequestFilter","nativeMethod":false},{"methodName":" internalDoFilter","fileName":"ApplicationFilterChain.java","lineNumber":193,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"doFilter" ,"fileName":"ApplicationFilterChain.java","lineNumber":166,"className":"org.apache.catalina.core.ApplicationFilterChain","nativeMethod":false},{"methodName":"invoke"," fileName":"StandardWrapperValve.java","lineNumber":199,"className":"org.apache.catalina.core.StandardWrapperValve","nativeMethod":false},{"methodName":"invoke","fileName" :"StandardContextValve.java","lineNumber":96,"className":"org.apache.catalina.core.StandardContextValve","nativeMethod":fa lse},{"methodName":"invoke","fileName":"AuthenticatorBase.java","lineNumber":490,"className":"org.apache.catalina.authenticator.AuthenticatorBase","nativeMethod":false} ,{"methodName":"invoke","fileName":"StandardHostValve.java","lineNumber":139,"className":"org.apache.catalina.core.StandardHostValve","nativeMethod":false},{ "methodName":"invoke","fileName":"ErrorReportValve.java","lineNumber":92,"className":"org.apache.catalina.valves.ErrorReportValve","nativeMethod":false},{"methodName ":"invoke","fileName":"StandardEngineValve.java","lineNumber":74,"className":"org.apache.catalina.core.StandardEngineValve","nativeMethod":false},{"methodName": "service","fileName":"CoyoteAdapter.java","lineNumber":343,"className":"org.apache.catalina.connector.CoyoteAdapter","nativeMethod":false},{"methodName":"service ","fileName":"Http11Processor.java","lineNumber":408,"className":"org.apache.coyote.http11.Http11Processor","nativeMethod":false},{"methodName":"process", "文件名":"抽象处理器光。 java","lineNumber":66,"className":"org.apache.coyote.AbstractProcessorLight","nativeMethod":false},{"methodName":"process","fileName":"AbstractProtocol.java"," lineNumber":791,"className":"org.apache.coyote.AbstractProtocol$ConnectionHandler","nativeMethod":false},{"methodName":"doRun","fileName":"NioEndpoint.java","lineNumber" :1417,"className":"org.apache.tomcat.util.net.NioEndpoint$SocketProcessor","nativeMethod":false},{"methodName":"run","fileName":"SocketProcessorBase.java"," lineNumber":49,"className":"org.apache.tomcat.util.net.SocketProcessorBase","nativeMethod":false},{"methodName":"runWorker","fileName":"ThreadPoolExecutor.java"," lineNumber":1149,"className":"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":624 ,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"TaskThread.java","lineNumber":61,"类名":"org.apache.tomcat.util.thr eads.TaskThread$WrappingRunnable","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":748,"className":"java.lang.Thread" ,"nativeMethod":false}],"localizedMessage":"请 提供输入","message":"请提供输入","suppressed":[]}
我应该如何解决这个问题?提前谢谢你。
【问题讨论】:
标签: java rest spring-restcontroller