无法覆盖 Tomcat UAT 配置文件环境中的默认文件大小限制

Can't override Tomcat default file size limit in UAT profile environment

出于某种原因,在使用 UAT 配置文件环境时,我无法覆盖 Tomcat 关于文件大小限制的设置(在 SIT 上一切正常)

我正在使用 Spring Boot 2.2,我正在将这些属性添加到配置文件中:

spring.servlet.multipart.max-file-size=25MB
spring.servlet.multipart.max-request-size=25MB

然而,当我 运行 我在 Eclipse IDE 上的应用程序(全新安装和配置文件 UAT)时,当我尝试上传大于 1MB 的文件(AFAIK 是默认 Tomcat 的文件大小限制。

还有几点要指出:

  1. application-sit.properties文件和application-uat.properties都放置了所有指令同样的顺序。
  2. 当我尝试上传大小小于 1MB 的文件时,出现另一个错误,即 UnsupportedMediaType,所以我想知道问题出在我的 Angular 前端还是我的 Spring 引导后端应用程序。

哦...我 运行 我的 SIT 应用程序在本地,而 UAT 应用程序 运行 在 VM 中(如果它与VM).

提前感谢大家的帮助,如果您需要更多信息,我很乐意回答。

祝你有愉快的一天。

更新

根据 @PiotrP.Karwasz 的要求,我包含了用于制作上传服务的 Angular 和 Spring 代码:

upload()upload-service.service.ts

  upload(file: File)  {
    const formData: FormData = new FormData();
    formData.append('file', file);

    return new Observable(((observer: Observer<any>) => {
      const xhr = new XMLHttpRequest();

      xhr.onreadystatechange = _ => {
        if (xhr.readyState === 4) {
          if(xhr.status === 200) {
            observer.next(xhr.response);
            observer.complete();
          }
          else {
            observer.error(xhr.response); 
          }
        } 
      };

      ///environment.baseUrl changes based on the active profile config
      let url = environment.baseUrl + constants.REST_UPLOAD_FILE; 
      xhr.open('POST', url, true);
      xhr.send(formData);
    }));
  }

save()FileStorageService.java

@Override
public void save(MultipartFile file) {
    try {
        String filename = FilenameUtils.removeExtension(file.getOriginalFilename()) 
                                        + " - " 
                                        +  new SimpleDateFormat("dd꞉MM꞉yyyy HH'h'꞉mm'min'꞉ss's'")
                                            .format(new Date())
                                            .toString()
                                            .replaceAll("[^a-zA-Z0-9.-⁄꞉]", "_") 
                                        + "." + FilenameUtils.getExtension(file.getOriginalFilename());
        
        Files.copy(file.getInputStream(), this.root.resolve(filename));
    } catch (final Exception e) {
        throw new RuntimeException("Non posso salvare il file. Errore: " + e);
    }
}

请注意,据我所知,通过在 Eclipse 控制台上进行测试打印内容,它似乎甚至没有达到 Spring Boot save() 方法的地步,我我实际上也尝试过在管理传入请求的控制器方法(其代码将在下面链接)上打印内容,但它不会以任何方式显示任何内容,所以看起来更像是它永远不会到达控制器。

处理上传请求的控制器方法在 https://pastebin.com/EMZStXJw

可用

好的,在提取我的前端构建的 .war 文件后,我终于得到了它,我会把它放在这里供可能需要它的人使用。

问题是我的 environment.baseUrl(参见 upload-service.service.ts 文件中的 upload() 方法)指向一个 无效的 端点(我仍然必须弄清楚为什么端点会这样,为什么它首先会出现)所以当我尝试发出请求时,我得到了与实际错误无关的模棱两可的错误。

修改 UAT 配置文件足以使其正常工作。

TLDR;

确保您在 UAT 配置文件中指向正确的 URL 端点并提取 .war 以检查您的 application.properties 文件。