vaadin7.0创建新项目时,默认是这样配置的
@WebServlet
(value =
"/*"
, asyncSupported =
true
)
碰到的问题是:这里的value无法修改,否则运行就报错
Failed to load the bootstrap javascript: ./VAADIN/vaadinBootstrap.js
又新建了一个试了一下,运行时不报错了,不过点击按钮时出现以下报错信息:
Communication problem
Take note of any unsaved data, and click here or press ESC to continue.
(SyntaxError) : Unexpected token < - Original JSON-text: html>
正常应该是这样的:
从
http://cooperay.iteye.com/blog/1484497得知,这是Vaadin封装了错误信息。
哪里不对呢,查看官方文档吧,
找到了
4.8.5. Servlet 与 URL 模式的映射
看到这样的信息:
映射到子路径上
如果应用程序有多个 UI, 或多个 Servlet, 它们必须对应到 URL 的不同路径上, 匹配不同的 URL 模式. 而且, 你可能需要使用某些路径对外提供静态内容. 使用 /myui/*
这样的 URL 模式, 将匹配到 http://localhost:8080/myproject/myui/
这样的 URL. 注意在 URL 模式的末尾必须包含斜线和星号. 这时, 你还需要将 /VAADIN/*
这样的 URL 映射到 Servlet 上 (除非你用静态的方式为这个 URL 提供服务, 详情参见后面的章节).
试了一个这个方法,果然成功了。看来还是耐心看官方文档
比较靠谱啊。