Vaadin 14 如何将 vaadin servlet 移动到不同的 URL?

Vaadin 14 how to move the vaadin servlet to a different URL?

我有一个非常基本的 vaadin 应用程序 运行。该应用程序是 spring-boot 支持的,我定义了一些 rest API.

我已经使用 org.springdoc:springdoc-openapi-ui:1.4.4 添加了 OpenAPI 文档,在添加 vaadin 之前效果很好。

如 vaadin spring-boot 教程中所示添加 vaadin 依赖项并创建视图(有效)后,swagger UI 不再可用。

在我看来,vaadin 完全接管了所有网络请求。深入挖掘,我发现 vaadin 注册了一个新的 servlet 并捕获了所有请求。

我没有找到任何关于如何配置它的文档——我希望有人可以配置 vaadin 以便它从不同的路径服务 UI,比如说 /ui 或类似的.

我试过设置

vaadin:
   url-mapping: "/ui/*"

在我的 application.yaml 中——但这会导致我的 vaadin 视图出现空白页面(没有错误), 并且 vaadin servlet 仍然接管 /.

我用spring.boot 2.3.2.RELEASE, vaadin 14.3.1.

要覆盖的值是(注意驼峰式而不是 kebab-case):

vaadin:
  urlMapping: /ui/*

使用 kebab-case 确实(确实) 起作用。不出所料,这是一个错误。参见 https://github.com/vaadin/spring/issues/637

来自当时的文档:

You can set properties for Spring Boot in your application.properties file.

Example: Setting Spring URL mapping in application.properties.

vaadin.urlMapping=/my_mapping/*

By default, URL mapping is /*.

An additional servlet, such as /my_mapping/*, is required to handle the frontend resources for non-root servlets. The servlet can be defined in your application class. See this Application class for a example.


来源:https://vaadin.com/docs/v14/flow/spring/tutorial-spring-configuration.html#using-spring-boot-properties