我正在编写一个Vaadin应用程序,在一个WAR文件中的tomcat下运行。
我只是想简单地把它从瓦丁22升级到23。
它可靠地装载了Vaadin 22,但是现在它没有加载Vaadin 23。
WAR文件名为pcom.war,其中web.xml包含:
<servlet-mapping>
<servlet-name>PCOM</servlet-name>
<url-pattern>/pcom/*</url-pattern>
</servlet-mapping>因此,我试图从其中加载web应用程序的URL是:http://localhost:8080/pcom/pcom/。
由index.html中的META-INF/VAADIN/webapp/index.html中的Vaadin生成的pcom.war包含(为清晰起见添加的断行):
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<style>body, #outlet {
height: 100vh;
width: 100%;
margin: 0;
}</style>
<script defer="defer" src="VAADIN/build/vaadin-bundle-67fde5fb08b0f134e867.cache.js"></script>
</head>
<body>
<div id="outlet"></div>
</body>
</html>注意src="VAADIN/build/vaadin-bundle-...相对URL。这是正确的,相对于index.html,因为它位于pcom.war的META-INF内容中。
0 07-29-2022 14:33 META-INF/
79 07-29-2022 14:33 META-INF/MANIFEST.MF
0 07-29-2022 14:33 META-INF/VAADIN/
0 07-29-2022 14:33 META-INF/VAADIN/config/
1844 07-29-2022 14:33 META-INF/VAADIN/config/flow-build-info.json
1658 07-29-2022 14:33 META-INF/VAADIN/config/stats.json
0 07-29-2022 14:33 META-INF/VAADIN/webapp/
0 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/
0 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/
1051904 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-1-cfc74d1f13c51748c7ba.cache.js
259593 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-1-cfc74d1f13c51748c7ba.cache.js.gz
607425 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-2-737c0b4498b03051df61.cache.js
158040 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-2-737c0b4498b03051df61.cache.js.gz
67025 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-3-460383d2eeb67dbda1eb.cache.js
23477 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-3-460383d2eeb67dbda1eb.cache.js.gz
27991 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-4-9ba06ea1fd5a6da385f4.cache.js
8040 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-4-9ba06ea1fd5a6da385f4.cache.js.gz
3518 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-5-a21e874ef30c99e3575f.cache.js
1480 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-5-a21e874ef30c99e3575f.cache.js.gz
138893 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-6-5710b84bf57453285225.cache.js
46654 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-6-5710b84bf57453285225.cache.js.gz
86955 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-bundle-67fde5fb08b0f134e867.cache.js
26514 07-29-2022 14:33 META-INF/VAADIN/webapp/VAADIN/build/vaadin-bundle-67fde5fb08b0f134e867.cache.js.gz
365 07-29-2022 14:33 META-INF/VAADIN/webapp/index.html
273 07-29-2022 14:33 META-INF/VAADIN/webapp/index.html.gz但是,当我加载应用程序时,FireFox检查器会显示以下错误:

请注意加载http://localhost:8080/pcom/VAADIN/build/vaadin-bundle-67fde5fb08b0f134e867.cache.js时报告的错误。
该URL是不正确的,并生成一个404错误-我可以验证这一点使用curl(1)。
但是,我可以使用curl(1)成功地加载正确的URL,即http://localhost:8080/pcom/pcom/VAADIN/build/vaadin-bundle-67fde5fb08b0f134e867.cache.js。
为什么Vaadin 23要重写index.html 文件中的URL以使其可卸载??
FYI,也作为瓦丁流虫#14239提交。
更新
Vaadin有倒回引起这个问题的变化。耶。
发布于 2022-08-03 06:11:24
这个问题可以在您报告的Vaadin bug的评论中得到解决。
将/VAADIN/*添加到servlet映射中:
<servlet-mapping>
<servlet-name>VaadinBugServlet</servlet-name>
<url-pattern>/demo/*</url-pattern>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>https://stackoverflow.com/questions/73170520
复制相似问题