Requested resource [/VAADIN/HEARTBEAT/] not found from filesystem or throug

Hi there,

I am giving a try to new Vaadin v7.

I am working through the Book and finally I have a very simple HW application runing. However, I am getting the following error:

Any Idea,



This message is logged at INFO level.
However, I also get this message and I want to know why.

I have found the cause in ma application.
Initially, I have used this servlet mapping:

Vaadin Application Servlet

and I accessed via URL http://localhost:8080/myapp/VAADIN

This was working fine, except from HEARTBEAT requests.
After changing the mapping as follows, HEARTBEAT is now working as well:

Vaadin Application Servlet

Of course, I have to omit the VAADIN path segment when opening the application in a browser.

However, in my opinion this is a bug. The official Vaadin manual suggests a mapping with the VAADIN path segment when there are other servlets which must be mapped:
In that case, it should be possible to have /VAADIN/* the central entry point to the UI, without having to add another mapping which just points to the same servlet.

Regards, Sebastian

The path “/VAADIN/" is for static resources (theme, widgetset) and the application should not be accessed under it. The documentation says that if the application is not in the root context of the WAR,
” should be mapped to the same servlet if the resources are not extracted to be served directly by the server (not from the JAR/WAR by VaadinServlet; more complicated when upgrading Vaadin).

If you do have multiple servlets in the WAR, there should be no practical downside in mapping “/myapp/" and "/VAADIN/” to the same Vaadin servlet apart from a few extra lines in web.xml .

If anything should be done to enable mapping only a single non-root path, it should be permitting VAADIN to be inside the Vaadin application context rather than the other way around.

I can’t get it to work with embedded UI on Vaadin 7.0.0.

I have following static resources:

  • /designer.html - page that embeds vaadin
  • /VAADIN/themes

And Vaadin servlet mapped to “/VAADIN/*” (for resources) and “/vaadinServlet” (for actual service, just to make errors clearer).
I also have other servlets mapped.

Per documentation, I initialize application with:

  • “vaadinDir”: “./VAADIN/”
  • “browserDetailsUrl”: “./vaadinServlet”

This results in application requesting /designer.html/HEARTBEAT which is wrong since HEARTBEAT must be handled by servlet and according to docs servlet is set by browserDetailsUrl.

In a forum thread titled “Vaadin 7: Embedded Application” (which I can’t access in any way other than google results cache), I have found that setting undocumented “serviceUrl” parameter to servlet path would help.
It does generate correct url now (“/vaadinServlet/HEARTBEAT”) but VaadinServlet does not recognize this as a heartbeat. ServletPortletHelper.isHeartbeatRequest() checks whether request.getPathInfo() starts with “/HEARTBEAT” but pathinfo contains full path with servlet name in front!

As a workaround I have removed “serviceUrl” and mapped VaadinServlet to “/designer.html/*”.