Java代码导致406

请求406,接口报错参考如下,查资料说是返回的结果与接受的类型不一致,但是我不知道怎么解决这个问题。

2023-05-09 15:45:49.625  WARN 10748 --- [nio-9102-exec-9] .m.m.a.ExceptionHandlerExceptionResolver : Failed to invoke @ExceptionHandler method: public com.hyzk.custom.aop.result.ResultVO com.hyzk.custom.aop.exception.GlobalExceptionHandler.handle(javax.servlet.ServletException,javax.servlet.http.HttpServletRequest)

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:288)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:180)
    at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:119)
    at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:404)
    at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:61)
    at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:139)
    at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:78)
    at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1255)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1062)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:713)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:464)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:387)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:315)
    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:394)
    at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:253)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:175)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:235)
    at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:243)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

前端请求:

img


后端代码:

img

使用postman请求接口是可以请求成功的,浏览器就不行了

package org.pdool.anno;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Set;

/**
* @author 香菜
*/
public class Aain {
   public static void main(String[] args) throws InvocationTargetException,IllegalAccessException {
       // 获取有注解的方法
       Method[] declaredMethods = ResType.class.getDeclaredMethods();
       Method annoMethod = null;
       for (Method declaredMethod : declaredMethods) {
           CheckEnum  annotation = declaredMethod.getAnnotation(CheckEnum.class);
           if (annotation != null){
               annoMethod = declaredMethod;
              break;
          }
      }
       Set<Object> set = new HashSet<>();
       // 遍历每个枚举的id
       Object[] oo = ResType.class.getEnumConstants();
       for (Object o : oo) {
           Object invoke = annoMethod.invoke(o);
           if (!set.contains(invoke)){
               set.add(invoke);
          }else {
               System.out.println("重复的key "+ o +" -- "+ invoke);
          }
      }
  }
}

图片

注:上面的代码只是简单的实例,只是为了展示核心代码,在项目中使用时可以修改类的获取为扫描项目下的包,遍历所有的枚举,就可以在项目中使用了。