我有一个非常基本的 vaadin 应用程序正在运行。该应用程序由 spring-boot 支持,我定义了一些 rest API。
我已经使用 org.springdoc:springdoc-openapi-ui:1.4.4 添加了 OpenAPI 文档,它在添加 vaadin 之前运行良好。
如 vaadin spring-boot 教程中所示添加 vaadin 依赖项并创建 View (有效)后,无法再访问 swagger UI。
在我看来,vaadin 完全接管了所有网络请求。深入挖掘,我发现 vaadin 注册了一个新的 servlet 并捕获了所有请求。
我没有找到任何关于如何配置它的文档——我希望有人可以配置 vaadin 以便它从不同的路径提供 UI,比如 /ui
或类似的。
我试过设置
vaadin:
url-mapping: "/ui/*"
在我的 application.yaml
中——但这会导致我的 vaadin View 出现空白页面(没有错误),
并且 vaadin servlet 仍然接管 /
。
我使用 spring.boot 2.3.2.RELEASE
,vaadin 14.3.1
。
最佳答案
要覆盖的值是(注意驼峰式而不是烤肉串):
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.
关于java - Vaadin 14 如何将 vaadin servlet 移动到不同的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63396205/