Using DispatchAsync from Legacy Classes

759 views
Skip to first unread message

Erez Lirov

unread,
Jan 10, 2013, 5:06:23 PM1/10/13
to gwt-pl...@googlegroups.com
Hi!  We would like to slowly migrate to GWTP, server-side first.  We're trying to take a legacy GWT client side class and change the server RPC call to use GWTP's DispatchAsync mechanism without actually converting any of our legacy client-side code into Presenter objects.

Is it possible to inject a DispatchAsync object into an existing client side GWT class without converting it to a Presenter?

We're trying this:

public class TestUiPanel {
  private final DispatchAsync dispatcher;

  @Inject
  public TestUiPanel(DispatchAsync dispatcher) {
    this.dispatcher = dispatcher;
  }
}

with thisL
@GinModules({ VericleGinModule.class })
public interface VericleGinjector extends Ginjector {
  public TestUiPanel getTestUiPanel();
}

But we're getting an error trying to gwt compile the project:
Compiling module com.espoc.vericle.gwt.dispatch.DispatchDev
   Computing all possible rebind results for 'com.espoc.vericle.gwt.common.client.VericleGinjector'
      Rebinding com.espoc.vericle.gwt.common.client.VericleGinjector
         Invoking generator com.google.gwt.inject.rebind.GinjectorGenerator
            [ERROR] Error injecting com.gwtplatform.dispatch.shared.DispatchAsync: Unable to create or inherit binding: No @Inject or default constructor found for com.gwtplatform.dispatch.shared.DispatchAsync
  Path to required node:

com.espoc.vericle.gwt.dispatch.client.uitest.TestUiPanel [com.espoc.vericle.gwt.common.client.VericleGinjector#getTestUiPanel()]
 -> com.gwtplatform.dispatch.shared.DispatchAsync [@Inject constructor of com.espoc.vericle.gwt.dispatch.client.uitest.TestUiPanel]

   [ERROR] Errors in 'com/espoc/vericle/gwt/dispatch/client/Dispatch.java'
      [ERROR] Line 71: Failed to resolve 'com.espoc.vericle.gwt.common.client.VericleGinjector' via deferred binding

Any ideas?

Christian Goudreau

unread,
Jan 13, 2013, 1:12:06 PM1/13/13
to gwt-pl...@googlegroups.com
You need to install the dispatch module first and yes it is possible to use Dispatch without the MVP module.

install(new DispatchAsyncModule());


--
 
 



--
Christian Goudreau

Erez Lirov

unread,
Jan 14, 2013, 10:27:48 AM1/14/13
to gwt-pl...@googlegroups.com
I added the install here:

VericleGinModule.java:
import com.gwtplatform.dispatch.client.gin.DispatchAsyncModule;
import com.gwtplatform.mvp.client.gin.AbstractPresenterModule;

public class VericleGinModule extends AbstractPresenterModule {
  @Override
  protected void configure() {
    install(new DispatchAsyncModule());
  }
}

Then tied this to the Ginjector here:

VericleGinjector.java:
import com.espoc.vericle.gwt.dispatch.client.uitest.TestUiPanel;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.gwtplatform.mvp.client.proxy.PlaceManager;

@GinModules({ VericleGinModule.class })
public interface VericleGinjector extends Ginjector {
  PlaceManager getPlaceManager();

  EventBus getEventBus();

  TestUiPanel getTestUiPanel();
}

Then, tried to get an instance of TestUiPanel like this:

TestUiPanel.java:
class TestUiPanel {
  private final DispatchAsync dispatcher;

  @Inject
  public TestUiPanel(DispatchAsync dispatcher) {
    this.dispatcher = dispatcher;
  }

  private static final VericleGinjector injector = GWT.create(VericleGinjector.class);
  private static final TestUiPanel instance = injector.getTestUiPanel();
}

But I'm getting an Uncaught Exception Escaped that looks like it's caused by a missing FactoryModuleBuilder that seems to want to come from Guice instead of Gin.  I didn't Guice could run on the client side.  I'm guessing I'm doing something really wrong here...

10:23:14.834 [ERROR] [com.espoc.vericle.gwt.dispatch.Dispatch] Uncaught exception escaped

java.lang.ExceptionInInitializerError: null
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.setContent(Dispatch.java:113)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.onModuleLoad2(Dispatch.java:83)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch$1.execute(Dispatch.java:74)
    at com.google.gwt.core.client.impl.SchedulerImpl$Task$.executeScheduled$(SchedulerImpl.java:50)
    at com.google.gwt.core.client.impl.SchedulerImpl.runScheduledTasks(SchedulerImpl.java:228)
    at com.google.gwt.core.client.impl.SchedulerImpl.flushPostEventPumpCommands(SchedulerImpl.java:388)
    at com.google.gwt.core.client.impl.SchedulerImpl$Flusher.execute(SchedulerImpl.java:78)
    at com.google.gwt.core.client.impl.SchedulerImpl.execute(SchedulerImpl.java:138)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Deferred binding failed for 'com.espoc.vericle.gwt.common.client.VericleGinjector' (did you forget to inherit a required module?)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
    at com.google.gwt.core.shared.GWT.create(GWT.java:57)
    at com.google.gwt.core.client.GWT.create(GWT.java:85)
    at com.espoc.vericle.gwt.dispatch.client.uitest.TestUiPanel.<clinit>(TestUiPanel.java:69)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.setContent(Dispatch.java:113)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.onModuleLoad2(Dispatch.java:83)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch$1.execute(Dispatch.java:74)
    at com.google.gwt.core.client.impl.SchedulerImpl$Task$.executeScheduled$(SchedulerImpl.java:50)
    at com.google.gwt.core.client.impl.SchedulerImpl.runScheduledTasks(SchedulerImpl.java:228)
    at com.google.gwt.core.client.impl.SchedulerImpl.flushPostEventPumpCommands(SchedulerImpl.java:388)
    at com.google.gwt.core.client.impl.SchedulerImpl$Flusher.execute(SchedulerImpl.java:78)
    at com.google.gwt.core.client.impl.SchedulerImpl.execute(SchedulerImpl.java:138)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: com/google/inject/assistedinject/FactoryModuleBuilder
    at com.google.gwt.inject.rebind.resolution.ResolutionModule.configure(ResolutionModule.java:28)
    at com.google.inject.PrivateModule.configure(PrivateModule.java:97)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
    at com.google.inject.AbstractModule.install(AbstractModule.java:118)
    at com.google.gwt.inject.rebind.GinjectorGeneratorModule.configure(GinjectorGeneratorModule.java:67)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:59)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
    at com.google.inject.spi.Elements.getElements(Elements.java:101)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at com.google.gwt.inject.rebind.GinjectorGenerator.generate(GinjectorGenerator.java:74)
    at com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
    at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:657)
    at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:41)
    at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:79)
    at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:276)
    at com.google.gwt.dev.shell.ShellModuleSpaceHost.rebind(ShellModuleSpaceHost.java:141)
    at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:595)
    at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:465)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
    at com.google.gwt.core.shared.GWT.create(GWT.java:57)
    at com.google.gwt.core.client.GWT.create(GWT.java:85)
    at com.espoc.vericle.gwt.dispatch.client.uitest.TestUiPanel.<clinit>(TestUiPanel.java:69)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.setContent(Dispatch.java:113)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.onModuleLoad2(Dispatch.java:83)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch$1.execute(Dispatch.java:74)
    at com.google.gwt.core.client.impl.SchedulerImpl$Task$.executeScheduled$(SchedulerImpl.java:50)
    at com.google.gwt.core.client.impl.SchedulerImpl.runScheduledTasks(SchedulerImpl.java:228)
    at com.google.gwt.core.client.impl.SchedulerImpl.flushPostEventPumpCommands(SchedulerImpl.java:388)
    at com.google.gwt.core.client.impl.SchedulerImpl$Flusher.execute(SchedulerImpl.java:78)
    at com.google.gwt.core.client.impl.SchedulerImpl.execute(SchedulerImpl.java:138)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
    at java.lang.Thread.run(Thread.java:722)

Christian Goudreau

unread,
Jan 14, 2013, 10:47:16 AM1/14/13
to gwt-pl...@googlegroups.com
  private static final VericleGinjector injector = GWT.create(VericleGinjector.class);
  private static final TestUiPanel instance = injector.getTestUiPanel();
This is wrong. Even though it may not resolve your problem, the Ginjector should be created in your entrypoint BEFORE anything else. I'm suspecting gin is doing something funky.

Also since you're not using Prensenter yet, extends AbstractGinModule instead of AbstractPresenterModule. You also don't have to bind the placemanager since you're not using MVP yet. As for EventBus, it's bound to nothing yet.

Although Guice isn't really used on the client side, it's still needed bin Gin to work correctly.

On Mon, Jan 14, 2013 at 10:27 AM, Erez Lirov <eli...@espoc.com> wrote:

  private static final VericleGinjector injector = GWT.create(VericleGinjector.class);
  private static final TestUiPanel instance = injector.getTestUiPanel();




--
Christian Goudreau

Erez Lirov

unread,
Jan 14, 2013, 10:54:34 AM1/14/13
to gwt-pl...@googlegroups.com
OK.  I changed some stuff around, but still getting the FactoryModuleBuilder not found error:

--- snip--
Caused by: java.lang.NoClassDefFoundError: com/google/inject/assistedinject/FactoryModuleBuilder at com.google.gwt.inject.rebind.resolution.ResolutionModule.configure(ResolutionModule.java:28

Here are my new java files:

  @Override
  public void onModuleLoad() {
    DelayedBindRegistry.bind(VericleGinjector.INSTANCE);  //dies right here
  }

@GinModules({ VericleGinModule.class })
public interface VericleGinjector extends Ginjector {
  public static final VericleGinjector INSTANCE = GWT.create(VericleGinjector.class);
  TestUiPanel getTestUiPanel();
}

public class VericleGinModule extends AbstractGinModule {
  @Override
  protected void configure() {
    install(new DispatchAsyncModule());
  }
}

I'm getting two warnings on compilation that make me think I'm not including something properly:
dispatch:
Loading inherited module 'com.espoc.vericle.gwt.dispatch.DispatchDev'
   Loading inherited module 'com.espoc.vericle.gwt.dispatch.DispatchLib'
      [WARN] Setting configuration property named gin.ginjector in com.espoc.vericle.gwt.dispatch.DispatchLib that has not been previously defined.  This may be disallowed in the future.
      [WARN] Setting configuration property named gin.ginjector.modules in com.espoc.vericle.gwt.dispatch.DispatchLib that has not been previously defined.  This may be disallowed in the future.

Here's my gwt.xml file:

<module>
    <inherits name='com.google.gwt.inject.Inject'/>
    <inherits name='com.gwtplatform.dispatch.Dispatch' />
    <inherits name='com.gwtplatform.mvp.Mvp' />

... other stuff....
    <set-configuration-property name="gin.ginjector"
       value="com.espoc.vericle.gwt.common.client.VericleGinjector" />
    <set-configuration-property name="gin.ginjector.modules"
       value="com.espoc.vericle.gwt.common.client.VericleGinModule,com.gwtplatform.dispatch.client.gin.DispatchAsyncModule" />
</module>



On Mon, Jan 14, 2013 at 10:47 AM, Christian Goudreau <goudreau....@gmail.com> wrote:
  private static final VericleGinjector injector = GWT.create(VericleGinjector.class);
  private static final TestUiPanel instance = injector.getTestUiPanel();
This is wrong. Even though it may not resolve your problem, the Ginjector should be created in your entrypoint BEFORE anything else. I'm suspecting gin is doing something funky.

Also since you're not using Prensenter yet, extends AbstractGinModule instead of AbstractPresenterModule. You also don't have to bind the placemanager since you're not using MVP yet. As for EventBus, it's bound to nothing yet.

Although Guice isn't really used on the client side, it's still needed bin Gin to work correctly.

On Mon, Jan 14, 2013 at 10:27 AM, Erez Lirov <eli...@espoc.com> wrote:

  private static final VericleGinjector injector = GWT.create(VericleGinjector.class);
  private static final TestUiPanel instance = injector.getTestUiPanel();




--
Christian Goudreau

--
 
 

Christian Goudreau

unread,
Jan 14, 2013, 11:40:45 AM1/14/13
to gwt-pl...@googlegroups.com
Have you start using MVP? If not, remove in import for mvp and the delayed bind registery.

What is your pom file look like?


--
 
 



--
Christian Goudreau

Erez Lirov

unread,
Jan 14, 2013, 11:55:36 AM1/14/13
to gwt-platform
We're not using a POM file.  Is that a Maven thing?  I removed the MVP stuff and I'm still getting the same problem.
I think we must be missing an inherits or a jar file because of this warning on compile:
Loading inherited module 'com.espoc.vericle.gwt.dispatch.DispatchDev'
   Loading inherited module 'com.espoc.vericle.gwt.dispatch.DispatchLib'
      [WARN] Setting configuration property named gin.ginjector in com.espoc.vericle.gwt.dispatch.DispatchLib that has not been previously defined.  This may be disallowed in the future.
      [WARN] Setting configuration property named gin.ginjector.modules in com.espoc.vericle.gwt.dispatch.DispatchLib that has not been previously defined.  This may be disallowed in the future.

It looks like maybe GIN is just not being initialized properly, but I'm not seeing anything online that's helpful for resolve these warnings.

Also, the run-time error via the GWT plugin is still telling me that I'm missing:
com/google/inject/assistedinject/FactoryModuleBuilder

So I'm thinking I must have some sort of config issue...

I really appreciate the help on this, BTW.


--
 
 

Erez Lirov

unread,
Jan 14, 2013, 12:08:27 PM1/14/13
to gwt-pl...@googlegroups.com
Adding this, removed the warning for the property on compile.
  <define-configuration-property name="gin.ginjector" is-multi-valued="false" />

But I'm still getting the missing FactoryModuleBuilder error trying to instantiate VericleGinjector.  I feel like I'm just missing one inherits or something really small.  Like it's trying to use guice instead of gin or something, even though the call to Guice is actually coming from Gin in the stack trace below...

12:06:55.962 [ERROR] [com.espoc.vericle.gwt.dispatch.Dispatch] Unable to load module entry point class com.espoc.vericle.gwt.dispatch.client.Dispatch (see associated exception for details)

java.lang.RuntimeException: Deferred binding failed for 'com.espoc.vericle.gwt.common.client.VericleGinjector' (did you forget to inherit a required module?)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
    at com.google.gwt.core.shared.GWT.create(GWT.java:57)
    at com.google.gwt.core.client.GWT.create(GWT.java:85)
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.onModuleLoad(Dispatch.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: com/google/inject/assistedinject/FactoryModuleBuilder
    at com.espoc.vericle.gwt.dispatch.client.Dispatch.onModuleLoad(Dispatch.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
    at java.lang.Thread.run(Thread.java:722)

Erez Lirov

unread,
Jan 14, 2013, 12:23:03 PM1/14/13
to gwt-pl...@googlegroups.com
OOPS...  I forgot to include guice-assistedinject-3.0.jar in my eclipse project build path.  I also ordered the libraries as per this post:

Now, it looks like it's working.  Thanks!!

Christian Goudreau

unread,
Jan 14, 2013, 1:57:48 PM1/14/13
to gwt-pl...@googlegroups.com
You're welcome :D
Reply all
Reply to author
Forward
0 new messages