GWT app crashes in run-time when RequestContext interface is used in client code

67 views
Skip to first unread message

expert

unread,
Oct 11, 2011, 6:49:10 PM10/11/11
to Google Web Toolkit
I've been fighting with this issue for 3 days and I guess this forum
is my last resort. I ran out of ideas why it doesn't work :( I'm using
GWT 2.4.0 and JDK 1.6.

I was going through this http://goo.gl/mmFuQ tutorial and got stuck
with crashing GWT app. The app crashes if I mention
com.google.web.bindery.requestfactory.shared.RequestContext interface
in my client code. I'm not even using it. I just have unused method
that takes RequestContext as parameter. I tried referencing
RequestFactory - same exception. So I suspect I'm missing something
related to RequestFactory package. I added -logLevel DEBUG to GWT
compiler and here is what I have:

-----------
DEBUG: Rebinding
com.vsezavtra.courierApp.client.ManagerShell.ManagerShellUiBinder.
DEBUG: Checking rule <generate-with
class='com.google.web.bindery.requestfactory.gwt.rebind.RequestFactoryGenerator'/
>.
ERROR: Errors in 'jar:file:/C:/work/externals/gwt/gwt-user.jar!/
com/google/web/bindery/requestfactory/shared/Receiver.java'.
ERROR: Unable to find type
'com.vsezavtra.courierApp.client.ManagerShell.ManagerShellUiBinder'.
ERROR: Line 26: The import javax.validation.ConstraintViolation
cannot be resolved.
ERROR: Line 79: ConstraintViolation cannot be resolved to a
type.
ERROR: Line 81: ConstraintViolation cannot be resolved to a
type.
ERROR: Hint: Previous compiler errors may have made this type
unavailable.
ERROR: Hint: Check the inheritance chain from your module; it
may not be inheriting a required module or a module may not be adding
its source path entries properly.
ERROR: Deferred binding failed for
'com.vsezavtra.courierApp.client.ManagerShell.ManagerShellUiBinder';
expect subsequent failures.
ERROR: Unable to load module entry point class
com.vsezavtra.courierApp.client.courierApp (see associated exception
for details). java.lang.RuntimeException: Deferred binding failed for
'com.vsezavtra.courierApp.client.ManagerShell
$ManagerShellUiBinder' (did you forget to inherit a required module?)
at
com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
at com.google.gwt.core.client.GWT.create(GWT.java:97)
at
com.vsezavtra.courierApp.client.ManagerShell.<clinit>(ManagerShell.java:
15)
at
com.vsezavtra.courierApp.client.courierApp.onModuleLoad(courierApp.java:
10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:
396)
at
com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:
200)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
525)
at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
363)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.google.gwt.core.ext.UnableToCompleteException: (see
previous log entries)
at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:
595)
at
com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:
455)
at
com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
at com.google.gwt.core.client.GWT.create(GWT.java:97)
at
com.vsezavtra.courierApp.client.ManagerShell.<clinit>(ManagerShell.java:
15)
at
com.vsezavtra.courierApp.client.courierApp.onModuleLoad(courierApp.java:
10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:
396)
at
com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:
200)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
525)
at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
363)
at java.lang.Thread.run(Thread.java:662)
ERROR: Failed to load module 'courierApp' from user agent 'Mozilla/5.0
(Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/
14.0.835.202 Safari/535.1' at localhost:10695.
-----------

Full log is available here: http://pastebin.com/raw.php?i=46aiBLME

Here is my GWT XML file:
-----------
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0//
EN" "http://google-web-toolkit.googlecode.com/svn/releases/2.0/distro-
source/core/src/gwt-module.dtd">
<module rename-to="courierApp">
<inherits name='com.google.gwt.user.User'/>
<inherits
name="com.google.web.bindery.requestfactory.RequestFactory"/>

<source path="client"/>

<entry-point class='com.vsezavtra.courierApp.client.courierApp'/>
</module>
-----------

Main entry-point class:
-----------
package com.vsezavtra.courierApp.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootLayoutPanel;

public class courierApp implements EntryPoint
{
public void onModuleLoad()
{
RootLayoutPanel.get().add(new ManagerShell());
}
}
-----------

Bindable UI class
-----------
package com.vsezavtra.courierApp.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.requestfactory.shared.RequestContext;

public class ManagerShell extends Composite
{
interface ManagerShellUiBinder extends UiBinder<Widget,
ManagerShell>
{
}

private static ManagerShellUiBinder uiBinder =
GWT.create(ManagerShellUiBinder.class);

public ManagerShell()
{
initWidget(uiBinder.createAndBindUi(this));
}
// if I remove this method everything works :(
public void SetTest(RequestContext test) {}
}
-----------

and corresponding XML file
-----------
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:VerticalPanel>
<g:HTMLPanel>
Test!
</g:HTMLPanel>
<g:HTMLPanel>
Test2!
</g:HTMLPanel>
</g:VerticalPanel>
</ui:UiBinder>
-----------


and finally my web.xml file has only root "web-app" element because I
have no server-side part (yet).

I'm using IntelliJ IDEA 10.5.2 to debug the app.

Please let me know if you have any additional question. I really don't
know what else I can do :(

Steve Moyer

unread,
Aug 29, 2012, 9:20:28 AM8/29/12
to google-we...@googlegroups.com, rus...@gmail.com
I have the same problem with GWT 2.5 and Oracle JDK 7 ... did you ever resolve the issue?  The weird part is that this isn't my first RF-based project, yet I didn't run into this issue with the other projects.

Thanks

Thomas Broyer

unread,
Aug 29, 2012, 9:23:12 AM8/29/12
to google-we...@googlegroups.com, rus...@gmail.com


On Wednesday, August 29, 2012 3:20:28 PM UTC+2, Steve Moyer wrote:
I have the same problem with GWT 2.5 and Oracle JDK 7 ... did you ever resolve the issue?  The weird part is that this isn't my first RF-based project, yet I didn't run into this issue with the other projects.

Are validation-api and validation-api-src on your classpath?

Steve Moyer

unread,
Aug 29, 2012, 12:07:38 PM8/29/12
to google-we...@googlegroups.com, rus...@gmail.com
I thought they were ... I'm using Maven and didn't notice they were only in the test scope.  Problem solved (and with the same solution ruslan got from StackOverflow).

Thanks!
Reply all
Reply to author
Forward
0 new messages