No UIProvider returned a UI for the request in Vaadin7 + GAE

Hi All,
I try to integration with vaadin7 and GAE. Everything looks good and I can see my application as well except when I click button, I got this error:
No UIProvider returned a UI for the request
My application is generated by vaadin plugin as default, the guestUI, and there is no any customer uiprovider.
I try to deploy this to GAE, and I got the same error.
I’ve already done those:

  1. put those into appengine-web.xml
    true
    true
  2. put this into appengine-web.xml


  3. replace this in the web.xml
    com.vaadin.server.GAEVaadinServlet

But I still got that error. It looks like this part of code has problem:
else if (requestType == RequestType.UIDL) {
UI uI = getService().findUI(request);
if (uI == null) {
throw new ServletException(ERROR_NO_UI_FOUND);
}
I try to debug those code and I find in the session, UIs is blank, and that is why getService().findUI(request) can NOT find any uI and throw this error.

any help for this and do I still miss some configuration?

anybody can help me?
Thanks a lot

Up

There are a couple recent posts about this issue on the forum. But the solution for me was to un-jar the theme and widgetset jars before deploying.

Thanks for your help. I’ll try this.
If this is a problem, can any Vaadin expert explain this?.

:(,
For the default project, there is no theme or widgetset jar file. But it still has this problem.
Hi Rich,
would you mind tell me which jar file I need to un-jar?

Best Regards
Nick

anyone met the same problem?

I have the exact same issue. “Unjarring” didn’t work for me either.

also I did some un jar ing, and no joy, If any one knows any solutions a step by step guide for crayon clutchers and simpeltons would be lots of help

I got mine to work. I did a lot of stuff so I’m not positive exactly what fixed it. I suspect it’s the following. My top level component was a tab sheet. I saw another thread which said the heartbeat might be responsible for the problem in conjunction with the tab sheet. I added this to web.xml:

<context-param>
	<param-name>heartbeatInterval</param-name>
	<param-value>300</param-value>
</context-param>

I also ugraded to Vaadin 7.0.4, to app engine 1.7.7 and switched to java 7 as app engine 1.7.7. I got rid of the static file serving and it works fine with the themes and widgetset in vaadin jars.

One other change I made is that I mostly stopped using Eclipse User Libraries. The only libraries are JRE and GAE. Everything else is an external jar that I added to the project and made sure it was in war/WEB-INF/lib. I read some commentary that suggested this. I never understood why, if you added a user library with everything defined, you also needed to manually copy stuff to lib.

The problem still happens, every time I run the app with ?restartApplication (http://localhost:8888/?restartApplication).

I got rid of the heartbeat stuff in web.xml and it works fine without the ?restartApplication.

So ?restartApplication is at the heart of the issue and should be logged as a bug.

I did a further test to see if it happened without using a tab sheet. One of my tabs just had 2 buttons. I moved that to its own servlet and I still get the error whenever the first button is pressed whenever you start with ?restartApplication.

This is happening to me too. Using the basic project set up, the one where there is a button to click and underneath you get the label “thankyou for clicking”. I can deploy to GAE where all works, but when trying to develop offline through eclipse (right click project > debug as > web application) the server starts (jetty). When I open the page localhost:8888 in a browser I see the button, but when I click it I get:
[font=Courier New]

Internal error
Please notifiy the administrator.
Take note of any unsaved data, and click here to continue.

[/font]
The first part of the error message within eclipse is:
[font=Courier New]

Apr 15, 2013 10:06:24 PM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE:
javax.servlet.ServletException: No UIProvider returned a UI for the request.
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:312)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:201)
at com.vaadin.server.GAEVaadinServlet.service(GAEVaadinServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

[/font]
I do not have a theme or widgetset within the project. I have settings in
appengine-web.xml
as defined by the OP but not,
[font=Courier New]

[/font]
as there is no VAADIN folder within the project. Has a solution for this been found yet? How are people developing for GAE offline?

I believe this is a bug of Vaadin7 which is about vaadinSession and heartbeatInterval. We’d better raise a bug report to the Vaadin.

I’m finding that this bug always happens when you use ?restartApplication. When not doing ?restartApplication, I’m also finding that this bug happens a lot using the eclipse browser. It also happens a fair amount with chrome but a lot less with firefox. I suspect that chrome caching has something to do with it. Completely wiping the cache in chrome (ctrl-shift-del) sometimes helps and sometimes doesn’t.

There’s a lot of moving parts which makes this so frustrating. I suspect the reason wiping the cache doesn’t always work is that the error might leave the server in eclipse unstable for a while.

I filed a bug report for the ?restartApplication thing but not for the other occurences of “com.vaadin.server.DefaultErrorHandler doDefault SEVERE: javax.servlet.ServletException: No UIProvider returned a UI for the request.” errors.

I am hoping the Vaadin team takes this seriously. People are setting up basic basic Vaadin 7 and GAE projects and you immediately get errors that derail any serious development.

I added the heartbeat xml back into web.xml and a lot of the problems went away (excluding those with ?restartApplication). The xml is:

heartbeatInterval 300

I’m beginning to think that, as it states in another post, that a big part of the problem lies with the vaadin heartbeat not working properly by default. I also upgraded to the latest nightly build of 7.0.5 but that didn’t fix it. Without the heartbeat, I was still getting the errors.