1

当尝试从 spring-batch-admin webapp(版本 1.3.0)中停止作业时,会出现以下错误页面:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Sep 04 17:57:05 CEST 2014
There was an unexpected error (type=Method Not Allowed, status=405).
Request method 'POST' not supported

控制器需要一个 DELETE 方法来停止作业,但是从停止按钮触发了一个 POST。有谁知道如何解决这个问题?

在此处输入图像描述

编辑:我做了一些进一步的研究,偶然发现了春季论坛上一篇三年前的帖子。这表明HiddenMethodFilter我的 web.xml 中可能缺少一个。当我将批处理管理集成到 Spring Boot 应用程序中时,可能存在配置问题。现在我只需要弄清楚如何将上述过滤器添加到我的 spring-boot-mvc 默认值中。

编辑:我逐渐更好地了解引擎盖下发生了什么。我在这里对我的问题提出了一个更具体的问题。

任何帮助表示赞赏!

4

2 回答 2

1

可以像这样通过 web.xml 配置相同的过滤器

<filter>
    <filter-name>shallowEtagHeaderFilter</filter-name>
    <filter-class>org.springframework.web.filter.ShallowEtagHeaderFilter</filter-class>
</filter>

<filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>shallowEtagHeaderFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
于 2014-09-11T09:48:43.913 回答
0

我的 servlet 配置缺少以下 bean:

import org.springframework.web.filter.HiddenHttpMethodFilter;
import org.springframework.web.filter.ShallowEtagHeaderFilter;

@Bean
public Filter shallowEtagHeaderFilter() {
  ShallowEtagHeaderFilter filter = new ShallowEtagHeaderFilter();
  return filter; 
}

@Bean
public Filter hiddenHttpMethodFilter() {
  HiddenHttpMethodFilter filter = new HiddenHttpMethodFilter();      
  return filter;
}
于 2014-09-04T17:56:13.290 回答