我目前正在使用 springboot 和 Vaadin 8 开发微服务,并且我想为 Vaadin 使用Embedded UI 2.0插件。
我首先尝试将简单的 Springboot + Vaadin 嵌入到主机 Vaadin 应用程序中,如示例所示。
这是主机应用程序的结果代码:
import ...
import org.vaadin.embedded.VaadinUIComponent;
@Theme(ValoTheme.THEME_NAME)
public class HostUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
/*My Spring boot application */
VaadinUIComponent ui1 = new VaadinUIComponent("http://localhost:8081/app2/");
ui1.setSizeFull();
/* A simple vaadin application*/
VaadinUIComponent ui2 = new VaadinUIComponent("http://localhost:9020");
HorizontalSplitPanel split = new HorizontalSplitPanel(ui1, ui2);
split.setSizeFull();
setContent(split);
}
但我一直遇到 VAADIN/* 资源加载问题:
{"timestamp":1501683162735,"status":404,"error":"Not Found","message":"No message available","path":"
/app2/widgetsets/ws84167e472e91ff0ea8255f8f1b189aa0/ws84167e472e91ff0ea8255f8f1b189aa0.nocache.js"}
/app2/
我的应用程序的路径在哪里。
我不确定如何解析资源的路径,但我知道应该是Vaadin目录/app2/VAADIN/*
,因为小部件集和其他 vaadin 编译的资源工作正常,并且当我直接从浏览器打开应用程序时可用。
以下是一些附加信息:
- Vaadin 版本:8.0.5
- 嵌入式 UI 插件版本:2.0
- 我将 ValoTheme 用于所有 3 个应用程序(主机和嵌入式)
vaadin.widgetset.mode
设置为fetch
模式- 我确保为应用程序启用了 CORS。
我搜索了很长时间来解决这个问题,但找不到足够的资源来解决这种特殊情况,而且我也是 Spring 和 Vaadin 的初学者,所以我绝对可以使用一些帮助。