Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IIS重写请求-响应数据_Java_Spring Mvc_Tomcat_Intellij Idea - Fatal编程技术网

Java IIS重写请求-响应数据

Java IIS重写请求-响应数据,java,spring-mvc,tomcat,intellij-idea,Java,Spring Mvc,Tomcat,Intellij Idea,我有一个tomcat托管的spring应用程序。应用程序使用spring异常处理程序捕获和处理异常。例如,当发生这种情况时,我们将请求的响应状态重写为400。下面是我们的处理程序的一个示例 @ExceptionHandler({StepAlreadyInPlanException.class}) @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) public ErrorObject stepAlreadyInP

我有一个tomcat托管的spring应用程序。应用程序使用spring异常处理程序捕获和处理异常。例如,当发生这种情况时,我们将请求的响应状态重写为400。下面是我们的处理程序的一个示例

@ExceptionHandler({StepAlreadyInPlanException.class})
  @ResponseBody
  @ResponseStatus(value = HttpStatus.BAD_REQUEST)
  public ErrorObject stepAlreadyInPlan(Exception ex) {
    log.log(Level.ERROR, new Date().toString(), ex);

    ErrorObject err = new ErrorObject();
    err.setErrorCode(400);
    err.setMessage("STEP_ALREADY_IN_PLAN_EXCEPTION");

    return err;
  }
这在使用intelliJ运行服务器的开发中非常有效。当我们在tomcat上的生产设置中尝试相同的代码时,响应被吞没,并且在响应数据中只看到“BadRequest”

如果我们更改代码,使HTTP状态头返回OK,就像so
@ResponseStatus(value=HttpStatus.OK)
一样。我们得到了全部数据

我怀疑tomcat是如何干扰请求并压制我们的响应的。我如何配置tomcat以允许这种类型的数据通过


我最初怀疑这是tomcat重写,但解决问题后,我现在知道是IIS重写了头。

我认为您需要配置生产web服务器(
apache server
IIS
…)而不是tomcat

您的一些Web服务器配置会截获tomcat错误响应,并将其重定向到自己的自定义页面


您所要做的就是覆盖或删除该配置。

可能您的应用程序被配置为在出现错误时提供静态页面,这会导致Spring、servlet容器和静态web服务器(如果您有)之间发生冲突

看看这个:


我必须重新配置IIS httperrors配置,并将existingResponse设置为passTour。

在IIS中如何执行此操作?